<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Flow: flow::util::Blob_with_log_context&lt; S_SHARING_ALLOWED &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">Flow<span id="projectnumber">&#160;2.0.0</span>
   </div>
   <div id="projectbrief">Flow project: Public API.</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceflow.html">flow</a></li><li class="navelem"><a class="el" href="namespaceflow_1_1util.html">util</a></li><li class="navelem"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">Blob_with_log_context</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#related">Related Functions</a> &#124;
<a href="classflow_1_1util_1_1Blob__with__log__context-members.html">List of all members</a>  </div>
  <div class="headertitle"><div class="title">flow::util::Blob_with_log_context&lt; S_SHARING_ALLOWED &gt; Class Template Reference</div></div>
</div><!--header-->
<div class="contents">

<p><a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> that works in regular heap (and is itself placed in heap or stack) and memorizes a <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">log::Logger</a>, enabling easier logging albeit with a small perf trade-off.  
 <a href="classflow_1_1util_1_1Blob__with__log__context.html#details">More...</a></p>

<p><code>#include &lt;blob.hpp&gt;</code></p>
<div class="dynheader">
Inheritance diagram for flow::util::Blob_with_log_context&lt; S_SHARING_ALLOWED &gt;:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classflow_1_1util_1_1Blob__with__log__context__inherit__graph.svg" width="399" height="107"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for flow::util::Blob_with_log_context&lt; S_SHARING_ALLOWED &gt;:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classflow_1_1util_1_1Blob__with__log__context__coll__graph.svg" width="399" height="107"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-types" name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:ad9f8beb83caf9c48bede5e70521e53fb"><td class="memItemLeft" align="right" valign="top"><a id="ad9f8beb83caf9c48bede5e70521e53fb" name="ad9f8beb83caf9c48bede5e70521e53fb"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Base</b> = <a class="el" href="classflow_1_1util_1_1Basic__blob.html">Basic_blob</a>&lt; std::allocator&lt; <a class="el" href="namespaceflow.html#ae02da22c4a101eaab447511c905e4f32">uint8_t</a> &gt;, S_SHARING_ALLOWED &gt;</td></tr>
<tr class="memdesc:ad9f8beb83caf9c48bede5e70521e53fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for our main base. <br /></td></tr>
<tr class="separator:ad9f8beb83caf9c48bede5e70521e53fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade5daefad95ed92fa68f1d028dd67a65"><td class="memItemLeft" align="right" valign="top"><a id="ade5daefad95ed92fa68f1d028dd67a65" name="ade5daefad95ed92fa68f1d028dd67a65"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>value_type</b> = typename <a class="el" href="classflow_1_1util_1_1Basic__blob.html#aeb9b64885b78263048d406ec34907ecf">Base::value_type</a></td></tr>
<tr class="memdesc:ade5daefad95ed92fa68f1d028dd67a65"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for base member (needed because base access to a template must be qualified otherwise). <br /></td></tr>
<tr class="separator:ade5daefad95ed92fa68f1d028dd67a65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2a2e2410ed4ddc8ec8d2c22cbea1f40"><td class="memItemLeft" align="right" valign="top"><a id="af2a2e2410ed4ddc8ec8d2c22cbea1f40" name="af2a2e2410ed4ddc8ec8d2c22cbea1f40"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>size_type</b> = typename Base::size_type</td></tr>
<tr class="memdesc:af2a2e2410ed4ddc8ec8d2c22cbea1f40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for base member (needed because base access to a template must be qualified otherwise). <br /></td></tr>
<tr class="separator:af2a2e2410ed4ddc8ec8d2c22cbea1f40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8aa13b1d35ebc4e8874a90cf06ba83b1"><td class="memItemLeft" align="right" valign="top"><a id="a8aa13b1d35ebc4e8874a90cf06ba83b1" name="a8aa13b1d35ebc4e8874a90cf06ba83b1"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>difference_type</b> = typename <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a614d9cd750d8db928b4d1e045ef15c56">Base::difference_type</a></td></tr>
<tr class="memdesc:a8aa13b1d35ebc4e8874a90cf06ba83b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for base member (needed because base access to a template must be qualified otherwise). <br /></td></tr>
<tr class="separator:a8aa13b1d35ebc4e8874a90cf06ba83b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac30be1ccc8500cce80210adc2273d6c2"><td class="memItemLeft" align="right" valign="top"><a id="ac30be1ccc8500cce80210adc2273d6c2" name="ac30be1ccc8500cce80210adc2273d6c2"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Iterator</b> = typename <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a93b5764b185d0a1a1d143211e39b2de1">Base::Iterator</a></td></tr>
<tr class="memdesc:ac30be1ccc8500cce80210adc2273d6c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for base member (needed because base access to a template must be qualified otherwise). <br /></td></tr>
<tr class="separator:ac30be1ccc8500cce80210adc2273d6c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1649a4983f8c6b5d435779c45ce947c"><td class="memItemLeft" align="right" valign="top"><a id="af1649a4983f8c6b5d435779c45ce947c" name="af1649a4983f8c6b5d435779c45ce947c"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Const_iterator</b> = typename Base::Const_iterator</td></tr>
<tr class="memdesc:af1649a4983f8c6b5d435779c45ce947c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for base member (needed because base access to a template must be qualified otherwise). <br /></td></tr>
<tr class="separator:af1649a4983f8c6b5d435779c45ce947c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5181fcb4ecfb03192991dcded9332ab6"><td class="memItemLeft" align="right" valign="top"><a id="a5181fcb4ecfb03192991dcded9332ab6" name="a5181fcb4ecfb03192991dcded9332ab6"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Allocator_raw</b> = typename <a class="el" href="classflow_1_1util_1_1Basic__blob.html#ae2089286c63766445b3bf40422eb17db">Base::Allocator_raw</a></td></tr>
<tr class="memdesc:a5181fcb4ecfb03192991dcded9332ab6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for base member (needed because base access to a template must be qualified otherwise). <br /></td></tr>
<tr class="separator:a5181fcb4ecfb03192991dcded9332ab6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa65b24bc4b2ac8c4254e4aee635a3c24"><td class="memItemLeft" align="right" valign="top"><a id="aa65b24bc4b2ac8c4254e4aee635a3c24" name="aa65b24bc4b2ac8c4254e4aee635a3c24"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>pointer</b> = typename <a class="el" href="classflow_1_1util_1_1Basic__blob.html#adc55075d7e257e08058eabf5fe06ee33">Base::pointer</a></td></tr>
<tr class="memdesc:aa65b24bc4b2ac8c4254e4aee635a3c24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for base member (needed because base access to a template must be qualified otherwise). <br /></td></tr>
<tr class="separator:aa65b24bc4b2ac8c4254e4aee635a3c24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a950e0692366572312b48ba56d98668ae"><td class="memItemLeft" align="right" valign="top"><a id="a950e0692366572312b48ba56d98668ae" name="a950e0692366572312b48ba56d98668ae"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>const_pointer</b> = typename <a class="el" href="classflow_1_1util_1_1Basic__blob.html#ab73d1c26268670495dda161f95d33ec1">Base::const_pointer</a></td></tr>
<tr class="memdesc:a950e0692366572312b48ba56d98668ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for base member (needed because base access to a template must be qualified otherwise). <br /></td></tr>
<tr class="separator:a950e0692366572312b48ba56d98668ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af99f48d42be679b2484e3cb7906a810f"><td class="memItemLeft" align="right" valign="top"><a id="af99f48d42be679b2484e3cb7906a810f" name="af99f48d42be679b2484e3cb7906a810f"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>reference</b> = typename <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a72b010e5051889dd4732facb0b0d2e12">Base::reference</a></td></tr>
<tr class="memdesc:af99f48d42be679b2484e3cb7906a810f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for base member (needed because base access to a template must be qualified otherwise). <br /></td></tr>
<tr class="separator:af99f48d42be679b2484e3cb7906a810f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4ed9c11ae020e314ce51c46dbb14afd"><td class="memItemLeft" align="right" valign="top"><a id="ac4ed9c11ae020e314ce51c46dbb14afd" name="ac4ed9c11ae020e314ce51c46dbb14afd"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>const_reference</b> = typename <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a8b5a94572c51f89991987ca9f5bcf2b2">Base::const_reference</a></td></tr>
<tr class="memdesc:ac4ed9c11ae020e314ce51c46dbb14afd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for base member (needed because base access to a template must be qualified otherwise). <br /></td></tr>
<tr class="separator:ac4ed9c11ae020e314ce51c46dbb14afd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9211bca063ca93d99e142140626e1659"><td class="memItemLeft" align="right" valign="top"><a id="a9211bca063ca93d99e142140626e1659" name="a9211bca063ca93d99e142140626e1659"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>iterator</b> = typename <a class="el" href="classflow_1_1util_1_1Basic__blob.html#ae5feeeb171724712ace3ec667fc0a3e2">Base::iterator</a></td></tr>
<tr class="memdesc:a9211bca063ca93d99e142140626e1659"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for base member (needed because base access to a template must be qualified otherwise). <br /></td></tr>
<tr class="separator:a9211bca063ca93d99e142140626e1659"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04d832dee0d6f9e060dec9f40d81f4f7"><td class="memItemLeft" align="right" valign="top"><a id="a04d832dee0d6f9e060dec9f40d81f4f7" name="a04d832dee0d6f9e060dec9f40d81f4f7"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>const_iterator</b> = typename <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a527a63b2de0a165bb63296935aee954c">Base::const_iterator</a></td></tr>
<tr class="memdesc:a04d832dee0d6f9e060dec9f40d81f4f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for base member (needed because base access to a template must be qualified otherwise). <br /></td></tr>
<tr class="separator:a04d832dee0d6f9e060dec9f40d81f4f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classflow_1_1util_1_1Basic__blob"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classflow_1_1util_1_1Basic__blob')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classflow_1_1util_1_1Basic__blob.html">flow::util::Basic_blob&lt; std::allocator&lt; uint8_t &gt;, S_SHARING_ALLOWED &gt;</a></td></tr>
<tr class="memitem:aeb9b64885b78263048d406ec34907ecf inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a id="aeb9b64885b78263048d406ec34907ecf" name="aeb9b64885b78263048d406ec34907ecf"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>value_type</b> = <a class="el" href="namespaceflow.html#ae02da22c4a101eaab447511c905e4f32">uint8_t</a></td></tr>
<tr class="memdesc:aeb9b64885b78263048d406ec34907ecf inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for values, which in this case are unsigned bytes. <br /></td></tr>
<tr class="separator:aeb9b64885b78263048d406ec34907ecf inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9b27f4b460a0fa8a9c9638174a9433a inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a id="af9b27f4b460a0fa8a9c9638174a9433a" name="af9b27f4b460a0fa8a9c9638174a9433a"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>size_type</b> = std::size_t</td></tr>
<tr class="memdesc:af9b27f4b460a0fa8a9c9638174a9433a inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for index into blob or length of blob or sub-blob. <br /></td></tr>
<tr class="separator:af9b27f4b460a0fa8a9c9638174a9433a inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a614d9cd750d8db928b4d1e045ef15c56 inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a id="a614d9cd750d8db928b4d1e045ef15c56" name="a614d9cd750d8db928b4d1e045ef15c56"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>difference_type</b> = std::ptrdiff_t</td></tr>
<tr class="memdesc:a614d9cd750d8db928b4d1e045ef15c56 inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for difference of <code>size_type</code>s. <br /></td></tr>
<tr class="separator:a614d9cd750d8db928b4d1e045ef15c56 inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93b5764b185d0a1a1d143211e39b2de1 inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a id="a93b5764b185d0a1a1d143211e39b2de1" name="a93b5764b185d0a1a1d143211e39b2de1"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Iterator</b> = <a class="el" href="classflow_1_1util_1_1Basic__blob.html#aeb9b64885b78263048d406ec34907ecf">value_type</a> *</td></tr>
<tr class="memdesc:a93b5764b185d0a1a1d143211e39b2de1 inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for iterator pointing into a mutable structure of this type. <br /></td></tr>
<tr class="separator:a93b5764b185d0a1a1d143211e39b2de1 inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e21c26d61b50e019987097f7779ed51 inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a id="a3e21c26d61b50e019987097f7779ed51" name="a3e21c26d61b50e019987097f7779ed51"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Const_iterator</b> = <a class="el" href="classflow_1_1util_1_1Basic__blob.html#aeb9b64885b78263048d406ec34907ecf">value_type</a> const *</td></tr>
<tr class="memdesc:a3e21c26d61b50e019987097f7779ed51 inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for iterator pointing into an immutable structure of this type. <br /></td></tr>
<tr class="separator:a3e21c26d61b50e019987097f7779ed51 inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2089286c63766445b3bf40422eb17db inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a id="ae2089286c63766445b3bf40422eb17db" name="ae2089286c63766445b3bf40422eb17db"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>Allocator_raw</b> = std::allocator&lt; <a class="el" href="namespaceflow.html#ae02da22c4a101eaab447511c905e4f32">uint8_t</a> &gt;</td></tr>
<tr class="memdesc:ae2089286c63766445b3bf40422eb17db inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for the allocator type specified at compile-time. Its element type is our <a class="el" href="classflow_1_1util_1_1Basic__blob.html#aeb9b64885b78263048d406ec34907ecf" title="Short-hand for values, which in this case are unsigned bytes.">value_type</a>. <br /></td></tr>
<tr class="separator:ae2089286c63766445b3bf40422eb17db inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc55075d7e257e08058eabf5fe06ee33 inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a id="adc55075d7e257e08058eabf5fe06ee33" name="adc55075d7e257e08058eabf5fe06ee33"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>pointer</b> = <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a93b5764b185d0a1a1d143211e39b2de1">Iterator</a></td></tr>
<tr class="memdesc:adc55075d7e257e08058eabf5fe06ee33 inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">For container compliance (hence the irregular capitalization): pointer to element. <br /></td></tr>
<tr class="separator:adc55075d7e257e08058eabf5fe06ee33 inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab73d1c26268670495dda161f95d33ec1 inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a id="ab73d1c26268670495dda161f95d33ec1" name="ab73d1c26268670495dda161f95d33ec1"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>const_pointer</b> = <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a3e21c26d61b50e019987097f7779ed51">Const_iterator</a></td></tr>
<tr class="memdesc:ab73d1c26268670495dda161f95d33ec1 inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">For container compliance (hence the irregular capitalization): pointer to <code>const</code> element. <br /></td></tr>
<tr class="separator:ab73d1c26268670495dda161f95d33ec1 inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72b010e5051889dd4732facb0b0d2e12 inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a id="a72b010e5051889dd4732facb0b0d2e12" name="a72b010e5051889dd4732facb0b0d2e12"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>reference</b> = <a class="el" href="classflow_1_1util_1_1Basic__blob.html#aeb9b64885b78263048d406ec34907ecf">value_type</a> &amp;</td></tr>
<tr class="memdesc:a72b010e5051889dd4732facb0b0d2e12 inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">For container compliance (hence the irregular capitalization): reference to element. <br /></td></tr>
<tr class="separator:a72b010e5051889dd4732facb0b0d2e12 inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b5a94572c51f89991987ca9f5bcf2b2 inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a id="a8b5a94572c51f89991987ca9f5bcf2b2" name="a8b5a94572c51f89991987ca9f5bcf2b2"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>const_reference</b> = const <a class="el" href="classflow_1_1util_1_1Basic__blob.html#aeb9b64885b78263048d406ec34907ecf">value_type</a> &amp;</td></tr>
<tr class="memdesc:a8b5a94572c51f89991987ca9f5bcf2b2 inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">For container compliance (hence the irregular capitalization): reference to <code>const</code> element. <br /></td></tr>
<tr class="separator:a8b5a94572c51f89991987ca9f5bcf2b2 inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5feeeb171724712ace3ec667fc0a3e2 inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a id="ae5feeeb171724712ace3ec667fc0a3e2" name="ae5feeeb171724712ace3ec667fc0a3e2"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>iterator</b> = <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a93b5764b185d0a1a1d143211e39b2de1">Iterator</a></td></tr>
<tr class="memdesc:ae5feeeb171724712ace3ec667fc0a3e2 inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">For container compliance (hence the irregular capitalization): <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a93b5764b185d0a1a1d143211e39b2de1" title="Type for iterator pointing into a mutable structure of this type.">Iterator</a> type. <br /></td></tr>
<tr class="separator:ae5feeeb171724712ace3ec667fc0a3e2 inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a527a63b2de0a165bb63296935aee954c inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a id="a527a63b2de0a165bb63296935aee954c" name="a527a63b2de0a165bb63296935aee954c"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>const_iterator</b> = <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a3e21c26d61b50e019987097f7779ed51">Const_iterator</a></td></tr>
<tr class="memdesc:a527a63b2de0a165bb63296935aee954c inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">For container compliance (hence the irregular capitalization): <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a3e21c26d61b50e019987097f7779ed51" title="Type for iterator pointing into an immutable structure of this type.">Const_iterator</a> type. <br /></td></tr>
<tr class="separator:a527a63b2de0a165bb63296935aee954c inherit pub_types_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a7b99f86b28168dbabe7892d5e2aeddcf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#a7b99f86b28168dbabe7892d5e2aeddcf">Blob_with_log_context</a> (<a class="el" href="classflow_1_1log_1_1Logger.html">log::Logger</a> *logger_ptr=0)</td></tr>
<tr class="memdesc:a7b99f86b28168dbabe7892d5e2aeddcf"><td class="mdescLeft">&#160;</td><td class="mdescRight">On top of the similar 2-arg <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> ctor, memorizes the given <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">log::Logger</a> for all future logging in <code>*this</code>.  <a href="classflow_1_1util_1_1Blob__with__log__context.html#a7b99f86b28168dbabe7892d5e2aeddcf">More...</a><br /></td></tr>
<tr class="separator:a7b99f86b28168dbabe7892d5e2aeddcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1c14620aea7b1a40f5764cab0321be0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#aa1c14620aea7b1a40f5764cab0321be0">Blob_with_log_context</a> (<a class="el" href="classflow_1_1log_1_1Logger.html">log::Logger</a> *logger_ptr, <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#af2a2e2410ed4ddc8ec8d2c22cbea1f40">size_type</a> <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a8c04d217b83800f818c794da17dc8e4b">size</a>)</td></tr>
<tr class="memdesc:aa1c14620aea7b1a40f5764cab0321be0"><td class="mdescLeft">&#160;</td><td class="mdescRight">On top of the similar 3-arg <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> ctor, memorizes the given <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">log::Logger</a> for all future logging in <code>*this</code>.  <a href="classflow_1_1util_1_1Blob__with__log__context.html#aa1c14620aea7b1a40f5764cab0321be0">More...</a><br /></td></tr>
<tr class="separator:aa1c14620aea7b1a40f5764cab0321be0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af71ca7850b5cf88a0435fbe14b676284"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#af71ca7850b5cf88a0435fbe14b676284">Blob_with_log_context</a> (<a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">Blob_with_log_context</a> &amp;&amp;moved_src)</td></tr>
<tr class="memdesc:af71ca7850b5cf88a0435fbe14b676284"><td class="mdescLeft">&#160;</td><td class="mdescRight">On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> move ctor, moves the source object's <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">log::Logger</a> for all future logging in <code>*this</code>.  <a href="classflow_1_1util_1_1Blob__with__log__context.html#af71ca7850b5cf88a0435fbe14b676284">More...</a><br /></td></tr>
<tr class="separator:af71ca7850b5cf88a0435fbe14b676284"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa144c1f019013ece64df50e9fb7d02a2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#aa144c1f019013ece64df50e9fb7d02a2">Blob_with_log_context</a> (const <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">Blob_with_log_context</a> &amp;src)</td></tr>
<tr class="memdesc:aa144c1f019013ece64df50e9fb7d02a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> copy ctor, copies the source object's <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">log::Logger</a> for all future logging in <code>*this</code>.  <a href="classflow_1_1util_1_1Blob__with__log__context.html#aa144c1f019013ece64df50e9fb7d02a2">More...</a><br /></td></tr>
<tr class="separator:aa144c1f019013ece64df50e9fb7d02a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc6581eabf5c93320c098d8ea6c806b2"><td class="memItemLeft" align="right" valign="top"><a id="afc6581eabf5c93320c098d8ea6c806b2" name="afc6581eabf5c93320c098d8ea6c806b2"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>~Blob_with_log_context</b> ()</td></tr>
<tr class="memdesc:afc6581eabf5c93320c098d8ea6c806b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> dtor, adds some possible TRACE-logging. <br /></td></tr>
<tr class="separator:afc6581eabf5c93320c098d8ea6c806b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73f4a5d64cf770a043d9591cd1f8e26f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">Blob_with_log_context</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#a73f4a5d64cf770a043d9591cd1f8e26f">operator=</a> (<a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">Blob_with_log_context</a> &amp;&amp;moved_src)</td></tr>
<tr class="memdesc:a73f4a5d64cf770a043d9591cd1f8e26f"><td class="mdescLeft">&#160;</td><td class="mdescRight">On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> method, logs using the stored log context.  <a href="classflow_1_1util_1_1Blob__with__log__context.html#a73f4a5d64cf770a043d9591cd1f8e26f">More...</a><br /></td></tr>
<tr class="separator:a73f4a5d64cf770a043d9591cd1f8e26f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6961a2450106669479bcc8dd2061bc2c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">Blob_with_log_context</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#a6961a2450106669479bcc8dd2061bc2c">operator=</a> (const <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">Blob_with_log_context</a> &amp;src)</td></tr>
<tr class="memdesc:a6961a2450106669479bcc8dd2061bc2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> method, logs using the stored log context.  <a href="classflow_1_1util_1_1Blob__with__log__context.html#a6961a2450106669479bcc8dd2061bc2c">More...</a><br /></td></tr>
<tr class="separator:a6961a2450106669479bcc8dd2061bc2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a711ce35988b4aad671faaf10fbd6eb0d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#a711ce35988b4aad671faaf10fbd6eb0d">swap</a> (<a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">Blob_with_log_context</a> &amp;other)</td></tr>
<tr class="memdesc:a711ce35988b4aad671faaf10fbd6eb0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> method, logs using the stored log context.  <a href="classflow_1_1util_1_1Blob__with__log__context.html#a711ce35988b4aad671faaf10fbd6eb0d">More...</a><br /></td></tr>
<tr class="separator:a711ce35988b4aad671faaf10fbd6eb0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0170224a6ec8d4acba551fa175998db6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">Blob_with_log_context</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#a0170224a6ec8d4acba551fa175998db6">share</a> () const</td></tr>
<tr class="memdesc:a0170224a6ec8d4acba551fa175998db6"><td class="mdescLeft">&#160;</td><td class="mdescRight">On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> method, logs using the stored log context and copies it to the returned object as well.  <a href="classflow_1_1util_1_1Blob__with__log__context.html#a0170224a6ec8d4acba551fa175998db6">More...</a><br /></td></tr>
<tr class="separator:a0170224a6ec8d4acba551fa175998db6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb4fb1cfd3722642c8354d968e0a7925"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">Blob_with_log_context</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#acb4fb1cfd3722642c8354d968e0a7925">share_after_split_left</a> (<a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#af2a2e2410ed4ddc8ec8d2c22cbea1f40">size_type</a> <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a8c04d217b83800f818c794da17dc8e4b">size</a>)</td></tr>
<tr class="memdesc:acb4fb1cfd3722642c8354d968e0a7925"><td class="mdescLeft">&#160;</td><td class="mdescRight">On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> method, logs using the stored log context and copies it to the returned object as well.  <a href="classflow_1_1util_1_1Blob__with__log__context.html#acb4fb1cfd3722642c8354d968e0a7925">More...</a><br /></td></tr>
<tr class="separator:acb4fb1cfd3722642c8354d968e0a7925"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbef028be2eb419d363210e5d56f41c8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">Blob_with_log_context</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#afbef028be2eb419d363210e5d56f41c8">share_after_split_right</a> (<a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#af2a2e2410ed4ddc8ec8d2c22cbea1f40">size_type</a> <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a8c04d217b83800f818c794da17dc8e4b">size</a>)</td></tr>
<tr class="memdesc:afbef028be2eb419d363210e5d56f41c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> method, logs using the stored log context and copies it to the returned object as well.  <a href="classflow_1_1util_1_1Blob__with__log__context.html#afbef028be2eb419d363210e5d56f41c8">More...</a><br /></td></tr>
<tr class="separator:afbef028be2eb419d363210e5d56f41c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52a64f31c289082f7125d611fc01f745"><td class="memTemplParams" colspan="2">template&lt;typename Emit_blob_func &gt; </td></tr>
<tr class="memitem:a52a64f31c289082f7125d611fc01f745"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#a52a64f31c289082f7125d611fc01f745">share_after_split_equally</a> (<a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#af2a2e2410ed4ddc8ec8d2c22cbea1f40">size_type</a> <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a8c04d217b83800f818c794da17dc8e4b">size</a>, bool headless_pool, Emit_blob_func &amp;&amp;emit_blob_func)</td></tr>
<tr class="memdesc:a52a64f31c289082f7125d611fc01f745"><td class="mdescLeft">&#160;</td><td class="mdescRight">On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> method, logs using the stored log context and copies it to the emitted objects as well.  <a href="classflow_1_1util_1_1Blob__with__log__context.html#a52a64f31c289082f7125d611fc01f745">More...</a><br /></td></tr>
<tr class="separator:a52a64f31c289082f7125d611fc01f745"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b42f5cbe424291ebd93cfcd4d41e78b"><td class="memTemplParams" colspan="2">template&lt;typename Blob_container &gt; </td></tr>
<tr class="memitem:a9b42f5cbe424291ebd93cfcd4d41e78b"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#a9b42f5cbe424291ebd93cfcd4d41e78b">share_after_split_equally_emit_seq</a> (<a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#af2a2e2410ed4ddc8ec8d2c22cbea1f40">size_type</a> <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a8c04d217b83800f818c794da17dc8e4b">size</a>, bool headless_pool, Blob_container *out_blobs)</td></tr>
<tr class="memdesc:a9b42f5cbe424291ebd93cfcd4d41e78b"><td class="mdescLeft">&#160;</td><td class="mdescRight">On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> method, logs using the stored log context and copies it to the emitted objects as well.  <a href="classflow_1_1util_1_1Blob__with__log__context.html#a9b42f5cbe424291ebd93cfcd4d41e78b">More...</a><br /></td></tr>
<tr class="separator:a9b42f5cbe424291ebd93cfcd4d41e78b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae921a2c309f067ba3c0a28040bd9268b"><td class="memTemplParams" colspan="2">template&lt;typename Blob_ptr_container &gt; </td></tr>
<tr class="memitem:ae921a2c309f067ba3c0a28040bd9268b"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#ae921a2c309f067ba3c0a28040bd9268b">share_after_split_equally_emit_ptr_seq</a> (<a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#af2a2e2410ed4ddc8ec8d2c22cbea1f40">size_type</a> <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a8c04d217b83800f818c794da17dc8e4b">size</a>, bool headless_pool, Blob_ptr_container *out_blobs)</td></tr>
<tr class="memdesc:ae921a2c309f067ba3c0a28040bd9268b"><td class="mdescLeft">&#160;</td><td class="mdescRight">On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> method, logs using the stored log context and copes it to the emitted objects as well.  <a href="classflow_1_1util_1_1Blob__with__log__context.html#ae921a2c309f067ba3c0a28040bd9268b">More...</a><br /></td></tr>
<tr class="separator:ae921a2c309f067ba3c0a28040bd9268b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d66b404a14a996f52556be8d1064782"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#af2a2e2410ed4ddc8ec8d2c22cbea1f40">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#a4d66b404a14a996f52556be8d1064782">assign_copy</a> (const boost::asio::const_buffer &amp;src)</td></tr>
<tr class="memdesc:a4d66b404a14a996f52556be8d1064782"><td class="mdescLeft">&#160;</td><td class="mdescRight">On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> method, logs using the stored log context.  <a href="classflow_1_1util_1_1Blob__with__log__context.html#a4d66b404a14a996f52556be8d1064782">More...</a><br /></td></tr>
<tr class="separator:a4d66b404a14a996f52556be8d1064782"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0562b29e570b0aa8eaa091ebdbc227b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#ac30be1ccc8500cce80210adc2273d6c2">Iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#ac0562b29e570b0aa8eaa091ebdbc227b">emplace_copy</a> (<a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#af1649a4983f8c6b5d435779c45ce947c">Const_iterator</a> dest, const boost::asio::const_buffer &amp;src)</td></tr>
<tr class="memdesc:ac0562b29e570b0aa8eaa091ebdbc227b"><td class="mdescLeft">&#160;</td><td class="mdescRight">On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> method, logs using the stored log context.  <a href="classflow_1_1util_1_1Blob__with__log__context.html#ac0562b29e570b0aa8eaa091ebdbc227b">More...</a><br /></td></tr>
<tr class="separator:ac0562b29e570b0aa8eaa091ebdbc227b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3ac73f6d0ad3398c08d6be1ea8890fd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#af1649a4983f8c6b5d435779c45ce947c">Const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#af3ac73f6d0ad3398c08d6be1ea8890fd">sub_copy</a> (<a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#af1649a4983f8c6b5d435779c45ce947c">Const_iterator</a> src, const boost::asio::mutable_buffer &amp;dest) const</td></tr>
<tr class="memdesc:af3ac73f6d0ad3398c08d6be1ea8890fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> method, logs using the stored log context.  <a href="classflow_1_1util_1_1Blob__with__log__context.html#af3ac73f6d0ad3398c08d6be1ea8890fd">More...</a><br /></td></tr>
<tr class="separator:af3ac73f6d0ad3398c08d6be1ea8890fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47f53934a1116714f333db682cdc71a2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#a47f53934a1116714f333db682cdc71a2">reserve</a> (<a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#af2a2e2410ed4ddc8ec8d2c22cbea1f40">size_type</a> <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a719e5c04e4bdc65c31976fc385fd7f24">capacity</a>)</td></tr>
<tr class="memdesc:a47f53934a1116714f333db682cdc71a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> method, logs using the stored log context.  <a href="classflow_1_1util_1_1Blob__with__log__context.html#a47f53934a1116714f333db682cdc71a2">More...</a><br /></td></tr>
<tr class="separator:a47f53934a1116714f333db682cdc71a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a024fdd8b9f0389201c25b6601af2c3d4"><td class="memItemLeft" align="right" valign="top"><a id="a024fdd8b9f0389201c25b6601af2c3d4" name="a024fdd8b9f0389201c25b6601af2c3d4"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>make_zero</b> ()</td></tr>
<tr class="memdesc:a024fdd8b9f0389201c25b6601af2c3d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> method, logs using the stored log context. <br /></td></tr>
<tr class="separator:a024fdd8b9f0389201c25b6601af2c3d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada64ba0c877e8f7494f0a4c850b20fcc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#ada64ba0c877e8f7494f0a4c850b20fcc">resize</a> (<a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#af2a2e2410ed4ddc8ec8d2c22cbea1f40">size_type</a> <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a8c04d217b83800f818c794da17dc8e4b">size</a>, <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#af2a2e2410ed4ddc8ec8d2c22cbea1f40">size_type</a> start_or_unchanged=<a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#ad062746f09e8275557fa38d939fc5698">S_UNCHANGED</a>)</td></tr>
<tr class="memdesc:ada64ba0c877e8f7494f0a4c850b20fcc"><td class="mdescLeft">&#160;</td><td class="mdescRight">On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> method, logs using the stored log context.  <a href="classflow_1_1util_1_1Blob__with__log__context.html#ada64ba0c877e8f7494f0a4c850b20fcc">More...</a><br /></td></tr>
<tr class="separator:ada64ba0c877e8f7494f0a4c850b20fcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classflow_1_1log_1_1Log__context"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classflow_1_1log_1_1Log__context')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classflow_1_1log_1_1Log__context.html">flow::log::Log_context</a></td></tr>
<tr class="memitem:ae7100d2dd130d8f130e3e64fdb1f4fd9 inherit pub_methods_classflow_1_1log_1_1Log__context"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1log_1_1Log__context.html#ae7100d2dd130d8f130e3e64fdb1f4fd9">Log_context</a> (<a class="el" href="classflow_1_1log_1_1Logger.html">Logger</a> *logger=0)</td></tr>
<tr class="memdesc:ae7100d2dd130d8f130e3e64fdb1f4fd9 inherit pub_methods_classflow_1_1log_1_1Log__context"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs <a class="el" href="classflow_1_1log_1_1Log__context.html" title="Convenience class that simply stores a Logger and/or Component passed into a constructor; and returns...">Log_context</a> by storing the given pointer to a <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">Logger</a> and a null <a class="el" href="classflow_1_1log_1_1Component.html" title="A light-weight class, each object storing a component payload encoding an enum value from enum type o...">Component</a>.  <a href="classflow_1_1log_1_1Log__context.html#ae7100d2dd130d8f130e3e64fdb1f4fd9">More...</a><br /></td></tr>
<tr class="separator:ae7100d2dd130d8f130e3e64fdb1f4fd9 inherit pub_methods_classflow_1_1log_1_1Log__context"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1ac7f30ab442c3c6aa6079335df6c9a inherit pub_methods_classflow_1_1log_1_1Log__context"><td class="memTemplParams" colspan="2">template&lt;typename Component_payload &gt; </td></tr>
<tr class="memitem:af1ac7f30ab442c3c6aa6079335df6c9a inherit pub_methods_classflow_1_1log_1_1Log__context"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classflow_1_1log_1_1Log__context.html#af1ac7f30ab442c3c6aa6079335df6c9a">Log_context</a> (<a class="el" href="classflow_1_1log_1_1Logger.html">Logger</a> *logger, Component_payload component_payload)</td></tr>
<tr class="memdesc:af1ac7f30ab442c3c6aa6079335df6c9a inherit pub_methods_classflow_1_1log_1_1Log__context"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs <a class="el" href="classflow_1_1log_1_1Log__context.html" title="Convenience class that simply stores a Logger and/or Component passed into a constructor; and returns...">Log_context</a> by storing the given pointer to a <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">Logger</a> and a new <a class="el" href="classflow_1_1log_1_1Component.html" title="A light-weight class, each object storing a component payload encoding an enum value from enum type o...">Component</a> storing the specified generically typed payload (an <code>enum</code> value).  <a href="classflow_1_1log_1_1Log__context.html#af1ac7f30ab442c3c6aa6079335df6c9a">More...</a><br /></td></tr>
<tr class="separator:af1ac7f30ab442c3c6aa6079335df6c9a inherit pub_methods_classflow_1_1log_1_1Log__context"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c57a7f44959a01ca9a1c948a6686cc0 inherit pub_methods_classflow_1_1log_1_1Log__context"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1log_1_1Log__context.html#a5c57a7f44959a01ca9a1c948a6686cc0">Log_context</a> (const <a class="el" href="classflow_1_1log_1_1Log__context.html">Log_context</a> &amp;src)</td></tr>
<tr class="memdesc:a5c57a7f44959a01ca9a1c948a6686cc0 inherit pub_methods_classflow_1_1log_1_1Log__context"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor that stores equal <code>Logger*</code> and <a class="el" href="classflow_1_1log_1_1Component.html" title="A light-weight class, each object storing a component payload encoding an enum value from enum type o...">Component</a> values as the source.  <a href="classflow_1_1log_1_1Log__context.html#a5c57a7f44959a01ca9a1c948a6686cc0">More...</a><br /></td></tr>
<tr class="separator:a5c57a7f44959a01ca9a1c948a6686cc0 inherit pub_methods_classflow_1_1log_1_1Log__context"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d4e624833d96bdafa1485ffff472509 inherit pub_methods_classflow_1_1log_1_1Log__context"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1log_1_1Log__context.html#a3d4e624833d96bdafa1485ffff472509">Log_context</a> (<a class="el" href="classflow_1_1log_1_1Log__context.html">Log_context</a> &amp;&amp;src)</td></tr>
<tr class="memdesc:a3d4e624833d96bdafa1485ffff472509 inherit pub_methods_classflow_1_1log_1_1Log__context"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor that makes this equal to <code>src</code>, while the latter becomes as-if default-constructed.  <a href="classflow_1_1log_1_1Log__context.html#a3d4e624833d96bdafa1485ffff472509">More...</a><br /></td></tr>
<tr class="separator:a3d4e624833d96bdafa1485ffff472509 inherit pub_methods_classflow_1_1log_1_1Log__context"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d628315d5a93908d47a281980d3113e inherit pub_methods_classflow_1_1log_1_1Log__context"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1log_1_1Log__context.html">Log_context</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1log_1_1Log__context.html#a5d628315d5a93908d47a281980d3113e">operator=</a> (const <a class="el" href="classflow_1_1log_1_1Log__context.html">Log_context</a> &amp;src)</td></tr>
<tr class="memdesc:a5d628315d5a93908d47a281980d3113e inherit pub_methods_classflow_1_1log_1_1Log__context"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator that behaves similarly to the copy constructor.  <a href="classflow_1_1log_1_1Log__context.html#a5d628315d5a93908d47a281980d3113e">More...</a><br /></td></tr>
<tr class="separator:a5d628315d5a93908d47a281980d3113e inherit pub_methods_classflow_1_1log_1_1Log__context"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae857197aecba8606c32296bc7bec308 inherit pub_methods_classflow_1_1log_1_1Log__context"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1log_1_1Log__context.html">Log_context</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1log_1_1Log__context.html#aae857197aecba8606c32296bc7bec308">operator=</a> (<a class="el" href="classflow_1_1log_1_1Log__context.html">Log_context</a> &amp;&amp;src)</td></tr>
<tr class="memdesc:aae857197aecba8606c32296bc7bec308 inherit pub_methods_classflow_1_1log_1_1Log__context"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment operator that behaves similarly to the move constructor.  <a href="classflow_1_1log_1_1Log__context.html#aae857197aecba8606c32296bc7bec308">More...</a><br /></td></tr>
<tr class="separator:aae857197aecba8606c32296bc7bec308 inherit pub_methods_classflow_1_1log_1_1Log__context"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6bb8e4250586425631ef80063caf155 inherit pub_methods_classflow_1_1log_1_1Log__context"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1log_1_1Log__context.html#aa6bb8e4250586425631ef80063caf155">swap</a> (<a class="el" href="classflow_1_1log_1_1Log__context.html">Log_context</a> &amp;other)</td></tr>
<tr class="memdesc:aa6bb8e4250586425631ef80063caf155 inherit pub_methods_classflow_1_1log_1_1Log__context"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swaps <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">Logger</a> pointers and <a class="el" href="classflow_1_1log_1_1Component.html" title="A light-weight class, each object storing a component payload encoding an enum value from enum type o...">Component</a> objects held by <code>*this</code> and <code>other</code>.  <a href="classflow_1_1log_1_1Log__context.html#aa6bb8e4250586425631ef80063caf155">More...</a><br /></td></tr>
<tr class="separator:aa6bb8e4250586425631ef80063caf155 inherit pub_methods_classflow_1_1log_1_1Log__context"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4db395042b065b00398cd59845dcb4d inherit pub_methods_classflow_1_1log_1_1Log__context"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1log_1_1Logger.html">Logger</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1log_1_1Log__context.html#af4db395042b065b00398cd59845dcb4d">get_logger</a> () const</td></tr>
<tr class="memdesc:af4db395042b065b00398cd59845dcb4d inherit pub_methods_classflow_1_1log_1_1Log__context"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the stored <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">Logger</a> pointer, particularly as many <code>FLOW_LOG_*()</code> macros expect.  <a href="classflow_1_1log_1_1Log__context.html#af4db395042b065b00398cd59845dcb4d">More...</a><br /></td></tr>
<tr class="separator:af4db395042b065b00398cd59845dcb4d inherit pub_methods_classflow_1_1log_1_1Log__context"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a5fef42dc2cedf3c0d1a6e83beb2948 inherit pub_methods_classflow_1_1log_1_1Log__context"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classflow_1_1log_1_1Component.html">Component</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1log_1_1Log__context.html#a8a5fef42dc2cedf3c0d1a6e83beb2948">get_log_component</a> () const</td></tr>
<tr class="memdesc:a8a5fef42dc2cedf3c0d1a6e83beb2948 inherit pub_methods_classflow_1_1log_1_1Log__context"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns reference to the stored <a class="el" href="classflow_1_1log_1_1Component.html" title="A light-weight class, each object storing a component payload encoding an enum value from enum type o...">Component</a> object, particularly as many <code>FLOW_LOG_*()</code> macros expect.  <a href="classflow_1_1log_1_1Log__context.html#a8a5fef42dc2cedf3c0d1a6e83beb2948">More...</a><br /></td></tr>
<tr class="separator:a8a5fef42dc2cedf3c0d1a6e83beb2948 inherit pub_methods_classflow_1_1log_1_1Log__context"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classflow_1_1util_1_1Basic__blob"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classflow_1_1util_1_1Basic__blob')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classflow_1_1util_1_1Basic__blob.html">flow::util::Basic_blob&lt; std::allocator&lt; uint8_t &gt;, S_SHARING_ALLOWED &gt;</a></td></tr>
<tr class="memitem:abbd8243321a70378f27b551ff8082619 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#abbd8243321a70378f27b551ff8082619">Basic_blob</a> (const <a class="el" href="classflow_1_1util_1_1Basic__blob.html#ae2089286c63766445b3bf40422eb17db">Allocator_raw</a> &amp;alloc_raw=<a class="el" href="classflow_1_1util_1_1Basic__blob.html#ae2089286c63766445b3bf40422eb17db">Allocator_raw</a>{})</td></tr>
<tr class="memdesc:abbd8243321a70378f27b551ff8082619 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs blob with <code><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a1a64646d656ec125fa8973ccf843c1be" title="Returns false if a buffer is allocated and owned; true otherwise.">zero()</a> == true</code>.  <a href="classflow_1_1util_1_1Basic__blob.html#abbd8243321a70378f27b551ff8082619">More...</a><br /></td></tr>
<tr class="separator:abbd8243321a70378f27b551ff8082619 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a625734b39e0e3317aa321b6f8569f334 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a625734b39e0e3317aa321b6f8569f334">Basic_blob</a> (<a class="el" href="classflow_1_1util_1_1Basic__blob.html#af9b27f4b460a0fa8a9c9638174a9433a">size_type</a> <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a8c04d217b83800f818c794da17dc8e4b">size</a>, <a class="el" href="classflow_1_1log_1_1Logger.html">log::Logger</a> *logger_ptr=nullptr, const <a class="el" href="classflow_1_1util_1_1Basic__blob.html#ae2089286c63766445b3bf40422eb17db">Allocator_raw</a> &amp;alloc_raw=<a class="el" href="classflow_1_1util_1_1Basic__blob.html#ae2089286c63766445b3bf40422eb17db">Allocator_raw</a>{})</td></tr>
<tr class="memdesc:a625734b39e0e3317aa321b6f8569f334 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs blob with <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a8c04d217b83800f818c794da17dc8e4b" title="Returns number of elements stored, namely end() - begin().">size()</a> and <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a719e5c04e4bdc65c31976fc385fd7f24" title="Returns the number of elements in the internally allocated buffer, which is 1 or more; or 0 if no buf...">capacity()</a> equal to the given <code>size</code>, and <code><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a64ea173065830ef1a744458a7d05b833" title="Returns the offset between begin() and the start of the internally allocated buffer.">start()</a> == 0</code>.  <a href="classflow_1_1util_1_1Basic__blob.html#a625734b39e0e3317aa321b6f8569f334">More...</a><br /></td></tr>
<tr class="separator:a625734b39e0e3317aa321b6f8569f334 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a477ff0db26f79989d75da4dbe4bf4982 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a477ff0db26f79989d75da4dbe4bf4982">Basic_blob</a> (<a class="el" href="classflow_1_1util_1_1Basic__blob.html">Basic_blob</a> &amp;&amp;moved_src, <a class="el" href="classflow_1_1log_1_1Logger.html">log::Logger</a> *logger_ptr=nullptr)</td></tr>
<tr class="memdesc:a477ff0db26f79989d75da4dbe4bf4982 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor, constructing a blob exactly internally equal to pre-call <code>moved_src</code>, while the latter is made to be exactly as if it were just constructed as <code>Basic_blob(nullptr)</code> (allocator subtleties aside).  <a href="classflow_1_1util_1_1Basic__blob.html#a477ff0db26f79989d75da4dbe4bf4982">More...</a><br /></td></tr>
<tr class="separator:a477ff0db26f79989d75da4dbe4bf4982 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3568f40cab930beabf5bd831489d610a inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a3568f40cab930beabf5bd831489d610a">Basic_blob</a> (const <a class="el" href="classflow_1_1util_1_1Basic__blob.html">Basic_blob</a> &amp;src, <a class="el" href="classflow_1_1log_1_1Logger.html">log::Logger</a> *logger_ptr=nullptr)</td></tr>
<tr class="memdesc:a3568f40cab930beabf5bd831489d610a inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor, constructing a blob logically equal to <code>src</code>.  <a href="classflow_1_1util_1_1Basic__blob.html#a3568f40cab930beabf5bd831489d610a">More...</a><br /></td></tr>
<tr class="separator:a3568f40cab930beabf5bd831489d610a inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9fc395523fae83128888d9bb1c90726 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#ae9fc395523fae83128888d9bb1c90726">~Basic_blob</a> ()</td></tr>
<tr class="memdesc:ae9fc395523fae83128888d9bb1c90726 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor that drops <code>*this</code> ownership of the allocated internal buffer if any, as by <a class="el" href="classflow_1_1util_1_1Basic__blob.html#acf4d5acf2bdde5e602dd2f9d305adebf" title="Guarantees post-condition zero() == true by dropping *this ownership of the allocated internal buffer...">make_zero()</a>; if no other Basic_blob holds ownership of that buffer, then that buffer is deallocated also.  <a href="classflow_1_1util_1_1Basic__blob.html#ae9fc395523fae83128888d9bb1c90726">More...</a><br /></td></tr>
<tr class="separator:ae9fc395523fae83128888d9bb1c90726 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77785988abe56d62dacf42ec6a733713 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Basic__blob.html">Basic_blob</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a77785988abe56d62dacf42ec6a733713">assign</a> (<a class="el" href="classflow_1_1util_1_1Basic__blob.html">Basic_blob</a> &amp;&amp;moved_src, <a class="el" href="classflow_1_1log_1_1Logger.html">log::Logger</a> *logger_ptr=nullptr)</td></tr>
<tr class="memdesc:a77785988abe56d62dacf42ec6a733713 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment.  <a href="classflow_1_1util_1_1Basic__blob.html#a77785988abe56d62dacf42ec6a733713">More...</a><br /></td></tr>
<tr class="separator:a77785988abe56d62dacf42ec6a733713 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff44a959c238ea8aae3230c0b834d558 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Basic__blob.html">Basic_blob</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#aff44a959c238ea8aae3230c0b834d558">assign</a> (const <a class="el" href="classflow_1_1util_1_1Basic__blob.html">Basic_blob</a> &amp;src, <a class="el" href="classflow_1_1log_1_1Logger.html">log::Logger</a> *logger_ptr=nullptr)</td></tr>
<tr class="memdesc:aff44a959c238ea8aae3230c0b834d558 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy assignment: assuming <code>(this != &amp;src) &amp;&amp; (!blobs_sharing(*this, src))</code>, makes <code>*this</code> logically equal to <code>src</code>; but behavior undefined if a reallocation would be necessary to do this.  <a href="classflow_1_1util_1_1Basic__blob.html#aff44a959c238ea8aae3230c0b834d558">More...</a><br /></td></tr>
<tr class="separator:aff44a959c238ea8aae3230c0b834d558 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a151d35b3c35219089d53061503841b75 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Basic__blob.html">Basic_blob</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a151d35b3c35219089d53061503841b75">operator=</a> (<a class="el" href="classflow_1_1util_1_1Basic__blob.html">Basic_blob</a> &amp;&amp;moved_src)</td></tr>
<tr class="memdesc:a151d35b3c35219089d53061503841b75 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment operator (no logging): equivalent to <code>assign(std::move(moved_src), nullptr)</code>.  <a href="classflow_1_1util_1_1Basic__blob.html#a151d35b3c35219089d53061503841b75">More...</a><br /></td></tr>
<tr class="separator:a151d35b3c35219089d53061503841b75 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72eda661d71306c2fbd0422993922309 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Basic__blob.html">Basic_blob</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a72eda661d71306c2fbd0422993922309">operator=</a> (const <a class="el" href="classflow_1_1util_1_1Basic__blob.html">Basic_blob</a> &amp;src)</td></tr>
<tr class="memdesc:a72eda661d71306c2fbd0422993922309 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy assignment operator (no logging): equivalent to <code>assign(src, nullptr)</code>.  <a href="classflow_1_1util_1_1Basic__blob.html#a72eda661d71306c2fbd0422993922309">More...</a><br /></td></tr>
<tr class="separator:a72eda661d71306c2fbd0422993922309 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3707ab8d2693a394c661b742d2626d4e inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a3707ab8d2693a394c661b742d2626d4e">swap</a> (<a class="el" href="classflow_1_1util_1_1Basic__blob.html">Basic_blob</a> &amp;other, <a class="el" href="classflow_1_1log_1_1Logger.html">log::Logger</a> *logger_ptr=nullptr)</td></tr>
<tr class="memdesc:a3707ab8d2693a394c661b742d2626d4e inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swaps the contents of this structure and <code>other</code>, or no-op if <code>this == &amp;other</code>.  <a href="classflow_1_1util_1_1Basic__blob.html#a3707ab8d2693a394c661b742d2626d4e">More...</a><br /></td></tr>
<tr class="separator:a3707ab8d2693a394c661b742d2626d4e inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0044410b7d1f541978a309f02b2739d3 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Basic__blob.html">Basic_blob</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a0044410b7d1f541978a309f02b2739d3">share</a> (<a class="el" href="classflow_1_1log_1_1Logger.html">log::Logger</a> *logger_ptr=nullptr) const</td></tr>
<tr class="memdesc:a0044410b7d1f541978a309f02b2739d3 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Applicable to <code>!zero()</code> blobs, this returns an identical Basic_blob that shares (co-owns) <code>*this</code> allocated buffer along with <code>*this</code> and any other <code>Basic_blob</code>s also sharing it.  <a href="classflow_1_1util_1_1Basic__blob.html#a0044410b7d1f541978a309f02b2739d3">More...</a><br /></td></tr>
<tr class="separator:a0044410b7d1f541978a309f02b2739d3 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c0635640d16084eb975a9fb97f96aab inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Basic__blob.html">Basic_blob</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a6c0635640d16084eb975a9fb97f96aab">share_after_split_left</a> (<a class="el" href="classflow_1_1util_1_1Basic__blob.html#af9b27f4b460a0fa8a9c9638174a9433a">size_type</a> <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a8c04d217b83800f818c794da17dc8e4b">size</a>, <a class="el" href="classflow_1_1log_1_1Logger.html">log::Logger</a> *logger_ptr=nullptr)</td></tr>
<tr class="memdesc:a6c0635640d16084eb975a9fb97f96aab inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Applicable to <code>!zero()</code> blobs, this shifts <code>this-&gt;<a class="el" href="classflow_1_1util_1_1Basic__blob.html#a9daa427a42c8a8c24b585f96c37d277a" title="Returns pointer to mutable first element; or end() if empty().">begin()</a></code> by <code>size</code> to the right without changing <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a61880291749335246f60fde4387f7ad6" title="Returns pointer one past mutable last element; empty() is possible.">end()</a>; and returns a Basic_blob containing the shifted-past values that shares (co-owns) <code>*this</code> allocated buffer along with <code>*this</code> and any other <code>Basic_blob</code>s also sharing it.  <a href="classflow_1_1util_1_1Basic__blob.html#a6c0635640d16084eb975a9fb97f96aab">More...</a><br /></td></tr>
<tr class="separator:a6c0635640d16084eb975a9fb97f96aab inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aedd12dc6003934e156e3dc100e7c193e inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Basic__blob.html">Basic_blob</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#aedd12dc6003934e156e3dc100e7c193e">share_after_split_right</a> (<a class="el" href="classflow_1_1util_1_1Basic__blob.html#af9b27f4b460a0fa8a9c9638174a9433a">size_type</a> <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a8c04d217b83800f818c794da17dc8e4b">size</a>, <a class="el" href="classflow_1_1log_1_1Logger.html">log::Logger</a> *logger_ptr=nullptr)</td></tr>
<tr class="memdesc:aedd12dc6003934e156e3dc100e7c193e inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Identical to <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a6c0635640d16084eb975a9fb97f96aab" title="Applicable to !zero() blobs, this shifts this-&gt;begin() by size to the right without changing end(); a...">share_after_split_left()</a>, except <code>this-&gt;<a class="el" href="classflow_1_1util_1_1Basic__blob.html#a61880291749335246f60fde4387f7ad6" title="Returns pointer one past mutable last element; empty() is possible.">end()</a></code> shifts by <code>size</code> to the left (instead of <code>this-&gt;<a class="el" href="classflow_1_1util_1_1Basic__blob.html#a9daa427a42c8a8c24b585f96c37d277a" title="Returns pointer to mutable first element; or end() if empty().">begin()</a> to the right), and the split-off Basic_blob contains the *right-most*</code>size` elements (instead of the left-most).  <a href="classflow_1_1util_1_1Basic__blob.html#aedd12dc6003934e156e3dc100e7c193e">More...</a><br /></td></tr>
<tr class="separator:aedd12dc6003934e156e3dc100e7c193e inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e4aa425939071a4fb313d3237987226 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a2e4aa425939071a4fb313d3237987226">share_after_split_equally</a> (<a class="el" href="classflow_1_1util_1_1Basic__blob.html#af9b27f4b460a0fa8a9c9638174a9433a">size_type</a> <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a8c04d217b83800f818c794da17dc8e4b">size</a>, bool headless_pool, Emit_blob_func &amp;&amp;emit_blob_func, <a class="el" href="classflow_1_1log_1_1Logger.html">log::Logger</a> *logger_ptr=nullptr)</td></tr>
<tr class="memdesc:a2e4aa425939071a4fb313d3237987226 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Identical to successively performing <code>share_after_split_left(size)</code> until <code>this-&gt;<a class="el" href="classflow_1_1util_1_1Basic__blob.html#a797741a0a5c95b13b36f356ae8d397e8" title="Returns size() == 0.">empty()</a> == true</code>; the resultings <code>Basic_blob</code>s are emitted via <code>emit_blob_func()</code> callback in the order they're split off from the left.  <a href="classflow_1_1util_1_1Basic__blob.html#a2e4aa425939071a4fb313d3237987226">More...</a><br /></td></tr>
<tr class="separator:a2e4aa425939071a4fb313d3237987226 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa025a04ef0a19aa2065cab61a2b3a92c inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#aa025a04ef0a19aa2065cab61a2b3a92c">share_after_split_equally_emit_seq</a> (<a class="el" href="classflow_1_1util_1_1Basic__blob.html#af9b27f4b460a0fa8a9c9638174a9433a">size_type</a> <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a8c04d217b83800f818c794da17dc8e4b">size</a>, bool headless_pool, Blob_container *out_blobs, <a class="el" href="classflow_1_1log_1_1Logger.html">log::Logger</a> *logger_ptr=nullptr)</td></tr>
<tr class="memdesc:aa025a04ef0a19aa2065cab61a2b3a92c inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a2e4aa425939071a4fb313d3237987226" title="Identical to successively performing share_after_split_left(size) until this-&gt;empty() == true; the re...">share_after_split_equally()</a> wrapper that places <code>Basic_blob</code>s into the given container via <code>push_back()</code>.  <a href="classflow_1_1util_1_1Basic__blob.html#aa025a04ef0a19aa2065cab61a2b3a92c">More...</a><br /></td></tr>
<tr class="separator:aa025a04ef0a19aa2065cab61a2b3a92c inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf07a3d48fd3b216ed2a08a088b7ba6a inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#acf07a3d48fd3b216ed2a08a088b7ba6a">share_after_split_equally_emit_ptr_seq</a> (<a class="el" href="classflow_1_1util_1_1Basic__blob.html#af9b27f4b460a0fa8a9c9638174a9433a">size_type</a> <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a8c04d217b83800f818c794da17dc8e4b">size</a>, bool headless_pool, Blob_ptr_container *out_blobs, <a class="el" href="classflow_1_1log_1_1Logger.html">log::Logger</a> *logger_ptr=nullptr)</td></tr>
<tr class="memdesc:acf07a3d48fd3b216ed2a08a088b7ba6a inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a2e4aa425939071a4fb313d3237987226" title="Identical to successively performing share_after_split_left(size) until this-&gt;empty() == true; the re...">share_after_split_equally()</a> wrapper that places <code>Ptr&lt;Basic_blob&gt;</code>s into the given container via <code>push_back()</code>, where the type <code>Ptr&lt;&gt;</code> is determined via <code>Blob_ptr_container::value_type</code>.  <a href="classflow_1_1util_1_1Basic__blob.html#acf07a3d48fd3b216ed2a08a088b7ba6a">More...</a><br /></td></tr>
<tr class="separator:acf07a3d48fd3b216ed2a08a088b7ba6a inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4939ea2f0c76ec448cdc12275ce17f33 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#af9b27f4b460a0fa8a9c9638174a9433a">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a4939ea2f0c76ec448cdc12275ce17f33">assign_copy</a> (const boost::asio::const_buffer &amp;src, <a class="el" href="classflow_1_1log_1_1Logger.html">log::Logger</a> *logger_ptr=nullptr)</td></tr>
<tr class="memdesc:a4939ea2f0c76ec448cdc12275ce17f33 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replaces logical contents with a copy of the given non-overlapping area anywhere in memory.  <a href="classflow_1_1util_1_1Basic__blob.html#a4939ea2f0c76ec448cdc12275ce17f33">More...</a><br /></td></tr>
<tr class="separator:a4939ea2f0c76ec448cdc12275ce17f33 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9113cfc8160e93a0e0fa45de8058b858 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a93b5764b185d0a1a1d143211e39b2de1">Iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a9113cfc8160e93a0e0fa45de8058b858">emplace_copy</a> (<a class="el" href="classflow_1_1util_1_1Basic__blob.html#a3e21c26d61b50e019987097f7779ed51">Const_iterator</a> dest, const boost::asio::const_buffer &amp;src, <a class="el" href="classflow_1_1log_1_1Logger.html">log::Logger</a> *logger_ptr=nullptr)</td></tr>
<tr class="memdesc:a9113cfc8160e93a0e0fa45de8058b858 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies <code>src</code> buffer directly onto equally sized area within <code>*this</code> at location <code>dest</code>; <code>*this</code> must have sufficient <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a8c04d217b83800f818c794da17dc8e4b" title="Returns number of elements stored, namely end() - begin().">size()</a> to accomodate all of the data copied.  <a href="classflow_1_1util_1_1Basic__blob.html#a9113cfc8160e93a0e0fa45de8058b858">More...</a><br /></td></tr>
<tr class="separator:a9113cfc8160e93a0e0fa45de8058b858 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2484d717fde243f6118ac4b0312df87 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a3e21c26d61b50e019987097f7779ed51">Const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#aa2484d717fde243f6118ac4b0312df87">sub_copy</a> (<a class="el" href="classflow_1_1util_1_1Basic__blob.html#a3e21c26d61b50e019987097f7779ed51">Const_iterator</a> src, const boost::asio::mutable_buffer &amp;dest, <a class="el" href="classflow_1_1log_1_1Logger.html">log::Logger</a> *logger_ptr=nullptr) const</td></tr>
<tr class="memdesc:aa2484d717fde243f6118ac4b0312df87 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">The opposite of <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a9113cfc8160e93a0e0fa45de8058b858" title="Copies src buffer directly onto equally sized area within *this at location dest; *this must have suf...">emplace_copy()</a> in every way, copying a sub-blob onto a target memory area.  <a href="classflow_1_1util_1_1Basic__blob.html#aa2484d717fde243f6118ac4b0312df87">More...</a><br /></td></tr>
<tr class="separator:aa2484d717fde243f6118ac4b0312df87 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c04d217b83800f818c794da17dc8e4b inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#af9b27f4b460a0fa8a9c9638174a9433a">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a8c04d217b83800f818c794da17dc8e4b">size</a> () const</td></tr>
<tr class="memdesc:a8c04d217b83800f818c794da17dc8e4b inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns number of elements stored, namely <code><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a61880291749335246f60fde4387f7ad6" title="Returns pointer one past mutable last element; empty() is possible.">end()</a> - <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a9daa427a42c8a8c24b585f96c37d277a" title="Returns pointer to mutable first element; or end() if empty().">begin()</a></code>.  <a href="classflow_1_1util_1_1Basic__blob.html#a8c04d217b83800f818c794da17dc8e4b">More...</a><br /></td></tr>
<tr class="separator:a8c04d217b83800f818c794da17dc8e4b inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a64ea173065830ef1a744458a7d05b833 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#af9b27f4b460a0fa8a9c9638174a9433a">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a64ea173065830ef1a744458a7d05b833">start</a> () const</td></tr>
<tr class="memdesc:a64ea173065830ef1a744458a7d05b833 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the offset between <code><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a9daa427a42c8a8c24b585f96c37d277a" title="Returns pointer to mutable first element; or end() if empty().">begin()</a></code> and the start of the internally allocated buffer.  <a href="classflow_1_1util_1_1Basic__blob.html#a64ea173065830ef1a744458a7d05b833">More...</a><br /></td></tr>
<tr class="separator:a64ea173065830ef1a744458a7d05b833 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a797741a0a5c95b13b36f356ae8d397e8 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a797741a0a5c95b13b36f356ae8d397e8">empty</a> () const</td></tr>
<tr class="memdesc:a797741a0a5c95b13b36f356ae8d397e8 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns <code><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a8c04d217b83800f818c794da17dc8e4b" title="Returns number of elements stored, namely end() - begin().">size()</a> == 0</code>.  <a href="classflow_1_1util_1_1Basic__blob.html#a797741a0a5c95b13b36f356ae8d397e8">More...</a><br /></td></tr>
<tr class="separator:a797741a0a5c95b13b36f356ae8d397e8 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a719e5c04e4bdc65c31976fc385fd7f24 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#af9b27f4b460a0fa8a9c9638174a9433a">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a719e5c04e4bdc65c31976fc385fd7f24">capacity</a> () const</td></tr>
<tr class="memdesc:a719e5c04e4bdc65c31976fc385fd7f24 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of elements in the internally allocated buffer, which is 1 or more; or 0 if no buffer is internally allocated.  <a href="classflow_1_1util_1_1Basic__blob.html#a719e5c04e4bdc65c31976fc385fd7f24">More...</a><br /></td></tr>
<tr class="separator:a719e5c04e4bdc65c31976fc385fd7f24 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a64646d656ec125fa8973ccf843c1be inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a1a64646d656ec125fa8973ccf843c1be">zero</a> () const</td></tr>
<tr class="memdesc:a1a64646d656ec125fa8973ccf843c1be inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns <code>false</code> if a buffer is allocated and owned; <code>true</code> otherwise.  <a href="classflow_1_1util_1_1Basic__blob.html#a1a64646d656ec125fa8973ccf843c1be">More...</a><br /></td></tr>
<tr class="separator:a1a64646d656ec125fa8973ccf843c1be inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa7bc2f80b4e46a18f04911954e2b3e7 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#aaa7bc2f80b4e46a18f04911954e2b3e7">reserve</a> (<a class="el" href="classflow_1_1util_1_1Basic__blob.html#af9b27f4b460a0fa8a9c9638174a9433a">size_type</a> <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a719e5c04e4bdc65c31976fc385fd7f24">capacity</a>, <a class="el" href="classflow_1_1log_1_1Logger.html">log::Logger</a> *logger_ptr=nullptr)</td></tr>
<tr class="memdesc:aaa7bc2f80b4e46a18f04911954e2b3e7 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ensures that an internal buffer of at least <code>capacity</code> elements is allocated and owned; disallows growing an existing buffer; never shrinks an existing buffer; if a buffer is allocated, it is no larger than <code>capacity</code>.  <a href="classflow_1_1util_1_1Basic__blob.html#aaa7bc2f80b4e46a18f04911954e2b3e7">More...</a><br /></td></tr>
<tr class="separator:aaa7bc2f80b4e46a18f04911954e2b3e7 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf4d5acf2bdde5e602dd2f9d305adebf inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#acf4d5acf2bdde5e602dd2f9d305adebf">make_zero</a> (<a class="el" href="classflow_1_1log_1_1Logger.html">log::Logger</a> *logger_ptr=nullptr)</td></tr>
<tr class="memdesc:acf4d5acf2bdde5e602dd2f9d305adebf inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Guarantees post-condition <code><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a1a64646d656ec125fa8973ccf843c1be" title="Returns false if a buffer is allocated and owned; true otherwise.">zero()</a> == true</code> by dropping <code>*this</code> ownership of the allocated internal buffer if any; if no other Basic_blob holds ownership of that buffer, then that buffer is deallocated also.  <a href="classflow_1_1util_1_1Basic__blob.html#acf4d5acf2bdde5e602dd2f9d305adebf">More...</a><br /></td></tr>
<tr class="separator:acf4d5acf2bdde5e602dd2f9d305adebf inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30b8db540e6d8e6a0b6200c17cf45b60 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a30b8db540e6d8e6a0b6200c17cf45b60">resize</a> (<a class="el" href="classflow_1_1util_1_1Basic__blob.html#af9b27f4b460a0fa8a9c9638174a9433a">size_type</a> <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a8c04d217b83800f818c794da17dc8e4b">size</a>, <a class="el" href="classflow_1_1util_1_1Basic__blob.html#af9b27f4b460a0fa8a9c9638174a9433a">size_type</a> start_or_unchanged=<a class="el" href="classflow_1_1util_1_1Basic__blob.html#a7667397ae554e4a9dcb9a3bf1bf33eb8">S_UNCHANGED</a>, <a class="el" href="classflow_1_1log_1_1Logger.html">log::Logger</a> *logger_ptr=nullptr)</td></tr>
<tr class="memdesc:a30b8db540e6d8e6a0b6200c17cf45b60 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Guarantees post-condition <code><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a8c04d217b83800f818c794da17dc8e4b" title="Returns number of elements stored, namely end() - begin().">size()</a> == size</code> and <code><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a64ea173065830ef1a744458a7d05b833" title="Returns the offset between begin() and the start of the internally allocated buffer.">start()</a> == start</code>; no values in pre-call range <code>[<a class="el" href="classflow_1_1util_1_1Basic__blob.html#a9daa427a42c8a8c24b585f96c37d277a" title="Returns pointer to mutable first element; or end() if empty().">begin()</a>, <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a61880291749335246f60fde4387f7ad6" title="Returns pointer one past mutable last element; empty() is possible.">end()</a>)</code> are changed; any values <em>added</em> to that range by the call are not initialized to zero or otherwise.  <a href="classflow_1_1util_1_1Basic__blob.html#a30b8db540e6d8e6a0b6200c17cf45b60">More...</a><br /></td></tr>
<tr class="separator:a30b8db540e6d8e6a0b6200c17cf45b60 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af98832169c8e46d84f6c06987a3670e3 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#af98832169c8e46d84f6c06987a3670e3">start_past_prefix</a> (<a class="el" href="classflow_1_1util_1_1Basic__blob.html#af9b27f4b460a0fa8a9c9638174a9433a">size_type</a> prefix_size)</td></tr>
<tr class="memdesc:af98832169c8e46d84f6c06987a3670e3 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Restructures blob to consist of an internally allocated buffer and a <code>[<a class="el" href="classflow_1_1util_1_1Basic__blob.html#a9daa427a42c8a8c24b585f96c37d277a" title="Returns pointer to mutable first element; or end() if empty().">begin()</a>, end)</code> range starting at offset <code>prefix_size</code> within that buffer.  <a href="classflow_1_1util_1_1Basic__blob.html#af98832169c8e46d84f6c06987a3670e3">More...</a><br /></td></tr>
<tr class="separator:af98832169c8e46d84f6c06987a3670e3 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c3497d662be650e7a560eb7a703acc1 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a9c3497d662be650e7a560eb7a703acc1">start_past_prefix_inc</a> (<a class="el" href="classflow_1_1util_1_1Basic__blob.html#a614d9cd750d8db928b4d1e045ef15c56">difference_type</a> prefix_size_inc)</td></tr>
<tr class="memdesc:a9c3497d662be650e7a560eb7a703acc1 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Like <a class="el" href="classflow_1_1util_1_1Basic__blob.html#af98832169c8e46d84f6c06987a3670e3" title="Restructures blob to consist of an internally allocated buffer and a [begin(), end) range starting at...">start_past_prefix()</a> but shifts the <em>current</em> prefix position by the given <em>incremental</em> value (positive or negative).  <a href="classflow_1_1util_1_1Basic__blob.html#a9c3497d662be650e7a560eb7a703acc1">More...</a><br /></td></tr>
<tr class="separator:a9c3497d662be650e7a560eb7a703acc1 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62da4400fbde6c186fb989f55248e3d2 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a62da4400fbde6c186fb989f55248e3d2">clear</a> ()</td></tr>
<tr class="memdesc:a62da4400fbde6c186fb989f55248e3d2 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Equivalent to <code>resize(0, start())</code>.  <a href="classflow_1_1util_1_1Basic__blob.html#a62da4400fbde6c186fb989f55248e3d2">More...</a><br /></td></tr>
<tr class="separator:a62da4400fbde6c186fb989f55248e3d2 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49046a070b040ca17ca9062ac291a6dd inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a93b5764b185d0a1a1d143211e39b2de1">Iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a49046a070b040ca17ca9062ac291a6dd">erase</a> (<a class="el" href="classflow_1_1util_1_1Basic__blob.html#a3e21c26d61b50e019987097f7779ed51">Const_iterator</a> first, <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a3e21c26d61b50e019987097f7779ed51">Const_iterator</a> past_last)</td></tr>
<tr class="memdesc:a49046a070b040ca17ca9062ac291a6dd inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs the minimal number of operations to make range <code>[<a class="el" href="classflow_1_1util_1_1Basic__blob.html#a9daa427a42c8a8c24b585f96c37d277a" title="Returns pointer to mutable first element; or end() if empty().">begin()</a>, <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a61880291749335246f60fde4387f7ad6" title="Returns pointer one past mutable last element; empty() is possible.">end()</a>)</code> unchanged except for lacking sub-range <code>[first, past_last)</code>.  <a href="classflow_1_1util_1_1Basic__blob.html#a49046a070b040ca17ca9062ac291a6dd">More...</a><br /></td></tr>
<tr class="separator:a49046a070b040ca17ca9062ac291a6dd inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9daa427a42c8a8c24b585f96c37d277a inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a93b5764b185d0a1a1d143211e39b2de1">Iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a9daa427a42c8a8c24b585f96c37d277a">begin</a> ()</td></tr>
<tr class="memdesc:a9daa427a42c8a8c24b585f96c37d277a inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns pointer to mutable first element; or <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a61880291749335246f60fde4387f7ad6" title="Returns pointer one past mutable last element; empty() is possible.">end()</a> if <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a797741a0a5c95b13b36f356ae8d397e8" title="Returns size() == 0.">empty()</a>.  <a href="classflow_1_1util_1_1Basic__blob.html#a9daa427a42c8a8c24b585f96c37d277a">More...</a><br /></td></tr>
<tr class="separator:a9daa427a42c8a8c24b585f96c37d277a inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1dfd46fca324a6b80934b9230c2f2bb4 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a3e21c26d61b50e019987097f7779ed51">Const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a1dfd46fca324a6b80934b9230c2f2bb4">begin</a> () const</td></tr>
<tr class="memdesc:a1dfd46fca324a6b80934b9230c2f2bb4 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Equivalent to <a class="el" href="classflow_1_1util_1_1Basic__blob.html#ac511ddaa3fb453888524cedba39c36ef" title="Returns pointer to immutable first element; or end() if empty().">const_begin()</a>.  <a href="classflow_1_1util_1_1Basic__blob.html#a1dfd46fca324a6b80934b9230c2f2bb4">More...</a><br /></td></tr>
<tr class="separator:a1dfd46fca324a6b80934b9230c2f2bb4 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac511ddaa3fb453888524cedba39c36ef inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a3e21c26d61b50e019987097f7779ed51">Const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#ac511ddaa3fb453888524cedba39c36ef">const_begin</a> () const</td></tr>
<tr class="memdesc:ac511ddaa3fb453888524cedba39c36ef inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns pointer to immutable first element; or <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a61880291749335246f60fde4387f7ad6" title="Returns pointer one past mutable last element; empty() is possible.">end()</a> if <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a797741a0a5c95b13b36f356ae8d397e8" title="Returns size() == 0.">empty()</a>.  <a href="classflow_1_1util_1_1Basic__blob.html#ac511ddaa3fb453888524cedba39c36ef">More...</a><br /></td></tr>
<tr class="separator:ac511ddaa3fb453888524cedba39c36ef inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61880291749335246f60fde4387f7ad6 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a93b5764b185d0a1a1d143211e39b2de1">Iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a61880291749335246f60fde4387f7ad6">end</a> ()</td></tr>
<tr class="memdesc:a61880291749335246f60fde4387f7ad6 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns pointer one past mutable last element; <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a797741a0a5c95b13b36f356ae8d397e8" title="Returns size() == 0.">empty()</a> is possible.  <a href="classflow_1_1util_1_1Basic__blob.html#a61880291749335246f60fde4387f7ad6">More...</a><br /></td></tr>
<tr class="separator:a61880291749335246f60fde4387f7ad6 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b61c80d3df1c53583362ec15cdbb0b6 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a3e21c26d61b50e019987097f7779ed51">Const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a9b61c80d3df1c53583362ec15cdbb0b6">end</a> () const</td></tr>
<tr class="memdesc:a9b61c80d3df1c53583362ec15cdbb0b6 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Equivalent to <a class="el" href="classflow_1_1util_1_1Basic__blob.html#ae4f1d8c42aea63ba4f127cb7ed5776d6" title="Returns pointer one past immutable last element; empty() is possible.">const_end()</a>.  <a href="classflow_1_1util_1_1Basic__blob.html#a9b61c80d3df1c53583362ec15cdbb0b6">More...</a><br /></td></tr>
<tr class="separator:a9b61c80d3df1c53583362ec15cdbb0b6 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4f1d8c42aea63ba4f127cb7ed5776d6 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a3e21c26d61b50e019987097f7779ed51">Const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#ae4f1d8c42aea63ba4f127cb7ed5776d6">const_end</a> () const</td></tr>
<tr class="memdesc:ae4f1d8c42aea63ba4f127cb7ed5776d6 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns pointer one past immutable last element; <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a797741a0a5c95b13b36f356ae8d397e8" title="Returns size() == 0.">empty()</a> is possible.  <a href="classflow_1_1util_1_1Basic__blob.html#ae4f1d8c42aea63ba4f127cb7ed5776d6">More...</a><br /></td></tr>
<tr class="separator:ae4f1d8c42aea63ba4f127cb7ed5776d6 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90859b0e130bef705a2e556ccb27df53 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classflow_1_1util_1_1Basic__blob.html#aeb9b64885b78263048d406ec34907ecf">value_type</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a90859b0e130bef705a2e556ccb27df53">const_front</a> () const</td></tr>
<tr class="memdesc:a90859b0e130bef705a2e556ccb27df53 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns reference to immutable first element.  <a href="classflow_1_1util_1_1Basic__blob.html#a90859b0e130bef705a2e556ccb27df53">More...</a><br /></td></tr>
<tr class="separator:a90859b0e130bef705a2e556ccb27df53 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c99b053ce77cd0573d882e194908e49 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classflow_1_1util_1_1Basic__blob.html#aeb9b64885b78263048d406ec34907ecf">value_type</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a7c99b053ce77cd0573d882e194908e49">const_back</a> () const</td></tr>
<tr class="memdesc:a7c99b053ce77cd0573d882e194908e49 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns reference to immutable last element.  <a href="classflow_1_1util_1_1Basic__blob.html#a7c99b053ce77cd0573d882e194908e49">More...</a><br /></td></tr>
<tr class="separator:a7c99b053ce77cd0573d882e194908e49 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98a489088e29d5d4b82b0498c8e210f8 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classflow_1_1util_1_1Basic__blob.html#aeb9b64885b78263048d406ec34907ecf">value_type</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a98a489088e29d5d4b82b0498c8e210f8">front</a> () const</td></tr>
<tr class="memdesc:a98a489088e29d5d4b82b0498c8e210f8 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Equivalent to <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a90859b0e130bef705a2e556ccb27df53" title="Returns reference to immutable first element.">const_front()</a>.  <a href="classflow_1_1util_1_1Basic__blob.html#a98a489088e29d5d4b82b0498c8e210f8">More...</a><br /></td></tr>
<tr class="separator:a98a489088e29d5d4b82b0498c8e210f8 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe7ea8c6aa0a7b043129fca8eacaedad inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#aeb9b64885b78263048d406ec34907ecf">value_type</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#abe7ea8c6aa0a7b043129fca8eacaedad">front</a> ()</td></tr>
<tr class="memdesc:abe7ea8c6aa0a7b043129fca8eacaedad inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns reference to mutable first element.  <a href="classflow_1_1util_1_1Basic__blob.html#abe7ea8c6aa0a7b043129fca8eacaedad">More...</a><br /></td></tr>
<tr class="separator:abe7ea8c6aa0a7b043129fca8eacaedad inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac10980e7748d8198fe831666254d864d inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classflow_1_1util_1_1Basic__blob.html#aeb9b64885b78263048d406ec34907ecf">value_type</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#ac10980e7748d8198fe831666254d864d">back</a> () const</td></tr>
<tr class="memdesc:ac10980e7748d8198fe831666254d864d inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Equivalent to <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a7c99b053ce77cd0573d882e194908e49" title="Returns reference to immutable last element.">const_back()</a>.  <a href="classflow_1_1util_1_1Basic__blob.html#ac10980e7748d8198fe831666254d864d">More...</a><br /></td></tr>
<tr class="separator:ac10980e7748d8198fe831666254d864d inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49d05eed39be69ceec235fe3403b16b9 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#aeb9b64885b78263048d406ec34907ecf">value_type</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a49d05eed39be69ceec235fe3403b16b9">back</a> ()</td></tr>
<tr class="memdesc:a49d05eed39be69ceec235fe3403b16b9 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns reference to mutable last element.  <a href="classflow_1_1util_1_1Basic__blob.html#a49d05eed39be69ceec235fe3403b16b9">More...</a><br /></td></tr>
<tr class="separator:a49d05eed39be69ceec235fe3403b16b9 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75d4c0a1e530596982a3b5d3e0ff91e6 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#aeb9b64885b78263048d406ec34907ecf">value_type</a> const *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a75d4c0a1e530596982a3b5d3e0ff91e6">const_data</a> () const</td></tr>
<tr class="memdesc:a75d4c0a1e530596982a3b5d3e0ff91e6 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Equivalent to <a class="el" href="classflow_1_1util_1_1Basic__blob.html#ac511ddaa3fb453888524cedba39c36ef" title="Returns pointer to immutable first element; or end() if empty().">const_begin()</a>.  <a href="classflow_1_1util_1_1Basic__blob.html#a75d4c0a1e530596982a3b5d3e0ff91e6">More...</a><br /></td></tr>
<tr class="separator:a75d4c0a1e530596982a3b5d3e0ff91e6 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4581e779dace3d64fe4098eb0a7dbeb2 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#aeb9b64885b78263048d406ec34907ecf">value_type</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a4581e779dace3d64fe4098eb0a7dbeb2">data</a> ()</td></tr>
<tr class="memdesc:a4581e779dace3d64fe4098eb0a7dbeb2 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Equivalent to <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a9daa427a42c8a8c24b585f96c37d277a" title="Returns pointer to mutable first element; or end() if empty().">begin()</a>.  <a href="classflow_1_1util_1_1Basic__blob.html#a4581e779dace3d64fe4098eb0a7dbeb2">More...</a><br /></td></tr>
<tr class="separator:a4581e779dace3d64fe4098eb0a7dbeb2 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a669252f9a78f516dfeaf964987078255 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a3e21c26d61b50e019987097f7779ed51">Const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a669252f9a78f516dfeaf964987078255">cbegin</a> () const</td></tr>
<tr class="memdesc:a669252f9a78f516dfeaf964987078255 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Synonym of <a class="el" href="classflow_1_1util_1_1Basic__blob.html#ac511ddaa3fb453888524cedba39c36ef" title="Returns pointer to immutable first element; or end() if empty().">const_begin()</a>.  <a href="classflow_1_1util_1_1Basic__blob.html#a669252f9a78f516dfeaf964987078255">More...</a><br /></td></tr>
<tr class="separator:a669252f9a78f516dfeaf964987078255 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada9e80920dcc3d51c229db98a9d62ac6 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a3e21c26d61b50e019987097f7779ed51">Const_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#ada9e80920dcc3d51c229db98a9d62ac6">cend</a> () const</td></tr>
<tr class="memdesc:ada9e80920dcc3d51c229db98a9d62ac6 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Synonym of <a class="el" href="classflow_1_1util_1_1Basic__blob.html#ae4f1d8c42aea63ba4f127cb7ed5776d6" title="Returns pointer one past immutable last element; empty() is possible.">const_end()</a>.  <a href="classflow_1_1util_1_1Basic__blob.html#ada9e80920dcc3d51c229db98a9d62ac6">More...</a><br /></td></tr>
<tr class="separator:ada9e80920dcc3d51c229db98a9d62ac6 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73e09b11e0067730db64f1fac7620a04 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a73e09b11e0067730db64f1fac7620a04">valid_iterator</a> (<a class="el" href="classflow_1_1util_1_1Basic__blob.html#a3e21c26d61b50e019987097f7779ed51">Const_iterator</a> it) const</td></tr>
<tr class="memdesc:a73e09b11e0067730db64f1fac7620a04 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns <code>true</code> if and only if: <code>this-&gt;derefable_iterator(it) || (it == this-&gt;<a class="el" href="classflow_1_1util_1_1Basic__blob.html#ae4f1d8c42aea63ba4f127cb7ed5776d6" title="Returns pointer one past immutable last element; empty() is possible.">const_end()</a>)</code>.  <a href="classflow_1_1util_1_1Basic__blob.html#a73e09b11e0067730db64f1fac7620a04">More...</a><br /></td></tr>
<tr class="separator:a73e09b11e0067730db64f1fac7620a04 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a198eb271d009f153cae041ba1948e945 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a198eb271d009f153cae041ba1948e945">derefable_iterator</a> (<a class="el" href="classflow_1_1util_1_1Basic__blob.html#a3e21c26d61b50e019987097f7779ed51">Const_iterator</a> it) const</td></tr>
<tr class="memdesc:a198eb271d009f153cae041ba1948e945 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns <code>true</code> if and only if the given iterator points to an element within this blob's <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a8c04d217b83800f818c794da17dc8e4b" title="Returns number of elements stored, namely end() - begin().">size()</a> elements.  <a href="classflow_1_1util_1_1Basic__blob.html#a198eb271d009f153cae041ba1948e945">More...</a><br /></td></tr>
<tr class="separator:a198eb271d009f153cae041ba1948e945 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afbb4e2420be2f8ca0dc8c4fb70feb8ea inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top">boost::asio::const_buffer&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#afbb4e2420be2f8ca0dc8c4fb70feb8ea">const_buffer</a> () const</td></tr>
<tr class="memdesc:afbb4e2420be2f8ca0dc8c4fb70feb8ea inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience accessor returning an immutable boost.asio buffer "view" into the entirety of the blob.  <a href="classflow_1_1util_1_1Basic__blob.html#afbb4e2420be2f8ca0dc8c4fb70feb8ea">More...</a><br /></td></tr>
<tr class="separator:afbb4e2420be2f8ca0dc8c4fb70feb8ea inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bd3cb0b6b3f304fb6fb771c1b76ec66 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top">boost::asio::mutable_buffer&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a2bd3cb0b6b3f304fb6fb771c1b76ec66">mutable_buffer</a> ()</td></tr>
<tr class="memdesc:a2bd3cb0b6b3f304fb6fb771c1b76ec66 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Same as <a class="el" href="classflow_1_1util_1_1Basic__blob.html#afbb4e2420be2f8ca0dc8c4fb70feb8ea" title="Convenience accessor returning an immutable boost.asio buffer &quot;view&quot; into the entirety of the blob.">const_buffer()</a> but the returned view is mutable.  <a href="classflow_1_1util_1_1Basic__blob.html#a2bd3cb0b6b3f304fb6fb771c1b76ec66">More...</a><br /></td></tr>
<tr class="separator:a2bd3cb0b6b3f304fb6fb771c1b76ec66 inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af32359d0bd98f378c7397a7c86e6e66d inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#ae2089286c63766445b3bf40422eb17db">Allocator_raw</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#af32359d0bd98f378c7397a7c86e6e66d">get_allocator</a> () const</td></tr>
<tr class="memdesc:af32359d0bd98f378c7397a7c86e6e66d inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a copy of the internally cached <a class="el" href="classflow_1_1util_1_1Basic__blob.html#ae2089286c63766445b3bf40422eb17db" title="Short-hand for the allocator type specified at compile-time. Its element type is our value_type.">Allocator_raw</a> as set by a constructor or <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a77785988abe56d62dacf42ec6a733713" title="Move assignment.">assign()</a> or assignment-operator, whichever happened last.  <a href="classflow_1_1util_1_1Basic__blob.html#af32359d0bd98f378c7397a7c86e6e66d">More...</a><br /></td></tr>
<tr class="separator:af32359d0bd98f378c7397a7c86e6e66d inherit pub_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-attribs" name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:a97ede2d8da00e2d656aae4670175d264"><td class="memItemLeft" align="right" valign="top"><a id="a97ede2d8da00e2d656aae4670175d264" name="a97ede2d8da00e2d656aae4670175d264"></a>
static constexpr auto&#160;</td><td class="memItemRight" valign="bottom"><b>S_SHARING</b> = Base::S_SHARING</td></tr>
<tr class="memdesc:a97ede2d8da00e2d656aae4670175d264"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for base member (needed because base access to a template must be qualified otherwise). <br /></td></tr>
<tr class="separator:a97ede2d8da00e2d656aae4670175d264"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad062746f09e8275557fa38d939fc5698"><td class="memItemLeft" align="right" valign="top"><a id="ad062746f09e8275557fa38d939fc5698" name="ad062746f09e8275557fa38d939fc5698"></a>
static constexpr auto&#160;</td><td class="memItemRight" valign="bottom"><b>S_UNCHANGED</b> = Base::S_UNCHANGED</td></tr>
<tr class="memdesc:ad062746f09e8275557fa38d939fc5698"><td class="mdescLeft">&#160;</td><td class="mdescRight">Short-hand for base member (needed because base access to a template must be qualified otherwise). <br /></td></tr>
<tr class="separator:ad062746f09e8275557fa38d939fc5698"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_static_attribs_classflow_1_1util_1_1Basic__blob"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classflow_1_1util_1_1Basic__blob')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classflow_1_1util_1_1Basic__blob.html">flow::util::Basic_blob&lt; std::allocator&lt; uint8_t &gt;, S_SHARING_ALLOWED &gt;</a></td></tr>
<tr class="memitem:a67db182946127383fb48d6a1afbdca90 inherit pub_static_attribs_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a id="a67db182946127383fb48d6a1afbdca90" name="a67db182946127383fb48d6a1afbdca90"></a>
static constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><b>S_SHARING</b></td></tr>
<tr class="memdesc:a67db182946127383fb48d6a1afbdca90 inherit pub_static_attribs_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Value of template parameter <code>S_SHARING_ALLOWED</code> (for generic programming). <br /></td></tr>
<tr class="separator:a67db182946127383fb48d6a1afbdca90 inherit pub_static_attribs_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7667397ae554e4a9dcb9a3bf1bf33eb8 inherit pub_static_attribs_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a id="a7667397ae554e4a9dcb9a3bf1bf33eb8" name="a7667397ae554e4a9dcb9a3bf1bf33eb8"></a>
static constexpr <a class="el" href="classflow_1_1util_1_1Basic__blob.html#af9b27f4b460a0fa8a9c9638174a9433a">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><b>S_UNCHANGED</b></td></tr>
<tr class="memdesc:a7667397ae554e4a9dcb9a3bf1bf33eb8 inherit pub_static_attribs_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Special value indicating an unchanged <code>size_type</code> value; such as in <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a30b8db540e6d8e6a0b6200c17cf45b60" title="Guarantees post-condition size() == size and start() == start; no values in pre-call range [begin(),...">resize()</a>. <br /></td></tr>
<tr class="separator:a7667397ae554e4a9dcb9a3bf1bf33eb8 inherit pub_static_attribs_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab79d366c55643022eaf9e0d7378165d7 inherit pub_static_attribs_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top">static constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#ab79d366c55643022eaf9e0d7378165d7">S_IS_VANILLA_ALLOC</a></td></tr>
<tr class="memdesc:ab79d366c55643022eaf9e0d7378165d7 inherit pub_static_attribs_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>true</code> if <a class="el" href="classflow_1_1util_1_1Basic__blob.html#ae2089286c63766445b3bf40422eb17db" title="Short-hand for the allocator type specified at compile-time. Its element type is our value_type.">Allocator_raw</a> underlying allocator template is simply <code>std::allocator</code>; <code>false</code> otherwise.  <a href="classflow_1_1util_1_1Basic__blob.html#ab79d366c55643022eaf9e0d7378165d7">More...</a><br /></td></tr>
<tr class="separator:ab79d366c55643022eaf9e0d7378165d7 inherit pub_static_attribs_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="related" name="related"></a>
Related Functions</h2></td></tr>
<tr><td class="ititle" colspan="2"><p >(Note that these are not member functions.) </p>
</td></tr>
<tr class="memitem:ae3835e26994f760a6324280d3a646b91"><td class="memTemplParams" colspan="2">template&lt;bool S_SHARING_ALLOWED&gt; </td></tr>
<tr class="memitem:ae3835e26994f760a6324280d3a646b91"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#ae3835e26994f760a6324280d3a646b91">swap</a> (<a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt; &amp;blob1, <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt; &amp;blob2)</td></tr>
<tr class="memdesc:ae3835e26994f760a6324280d3a646b91"><td class="mdescLeft">&#160;</td><td class="mdescRight">On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> related function, logs using the stored log context of <code>blob1</code>.  <a href="classflow_1_1util_1_1Blob__with__log__context.html#ae3835e26994f760a6324280d3a646b91">More...</a><br /></td></tr>
<tr class="separator:ae3835e26994f760a6324280d3a646b91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header related_classflow_1_1util_1_1Basic__blob"><td colspan="2" onclick="javascript:toggleInherit('related_classflow_1_1util_1_1Basic__blob')"><img src="closed.png" alt="-"/>&#160;Related Functions inherited from <a class="el" href="classflow_1_1util_1_1Basic__blob.html">flow::util::Basic_blob&lt; std::allocator&lt; uint8_t &gt;, S_SHARING_ALLOWED &gt;</a></td></tr>
<tr class="memitem:a71eaa4ab6a2673ed34fa8989c47a7bc0 inherit related_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a71eaa4ab6a2673ed34fa8989c47a7bc0">swap</a> (<a class="el" href="classflow_1_1util_1_1Basic__blob.html">Basic_blob</a>&lt; std::allocator&lt; <a class="el" href="namespaceflow.html#ae02da22c4a101eaab447511c905e4f32">uint8_t</a> &gt;, S_SHARING_ALLOWED &gt; &amp;blob1, <a class="el" href="classflow_1_1util_1_1Basic__blob.html">Basic_blob</a>&lt; std::allocator&lt; <a class="el" href="namespaceflow.html#ae02da22c4a101eaab447511c905e4f32">uint8_t</a> &gt;, S_SHARING_ALLOWED &gt; &amp;blob2, <a class="el" href="classflow_1_1log_1_1Logger.html">log::Logger</a> *logger_ptr=0)</td></tr>
<tr class="memdesc:a71eaa4ab6a2673ed34fa8989c47a7bc0 inherit related_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Equivalent to <code>blob1.swap(blob2)</code>.  <a href="classflow_1_1util_1_1Basic__blob.html#a71eaa4ab6a2673ed34fa8989c47a7bc0">More...</a><br /></td></tr>
<tr class="separator:a71eaa4ab6a2673ed34fa8989c47a7bc0 inherit related_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af567381736851969f6e8812c54404028 inherit related_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#af567381736851969f6e8812c54404028">blobs_sharing</a> (const <a class="el" href="classflow_1_1util_1_1Basic__blob.html">Basic_blob</a>&lt; std::allocator&lt; <a class="el" href="namespaceflow.html#ae02da22c4a101eaab447511c905e4f32">uint8_t</a> &gt;, S_SHARING_ALLOWED &gt; &amp;blob1, const <a class="el" href="classflow_1_1util_1_1Basic__blob.html">Basic_blob</a>&lt; std::allocator&lt; <a class="el" href="namespaceflow.html#ae02da22c4a101eaab447511c905e4f32">uint8_t</a> &gt;, S_SHARING_ALLOWED &gt; &amp;blob2)</td></tr>
<tr class="memdesc:af567381736851969f6e8812c54404028 inherit related_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns <code>true</code> if and only if both given objects are not <code><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a1a64646d656ec125fa8973ccf843c1be" title="Returns false if a buffer is allocated and owned; true otherwise.">zero()</a> == true</code>, and they either co-own a common underlying buffer, or <em>are</em> the same object.  <a href="classflow_1_1util_1_1Basic__blob.html#af567381736851969f6e8812c54404028">More...</a><br /></td></tr>
<tr class="separator:af567381736851969f6e8812c54404028 inherit related_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="inherited" name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_methods_classflow_1_1util_1_1Basic__blob"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classflow_1_1util_1_1Basic__blob')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classflow_1_1util_1_1Basic__blob.html">flow::util::Basic_blob&lt; std::allocator&lt; uint8_t &gt;, S_SHARING_ALLOWED &gt;</a></td></tr>
<tr class="memitem:a92215c61d9e3ca83bdbfa6b078b72dc9 inherit pro_methods_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflow_1_1util_1_1Basic__blob.html#a92215c61d9e3ca83bdbfa6b078b72dc9">share_after_split_equally_impl</a> (<a class="el" href="classflow_1_1util_1_1Basic__blob.html#af9b27f4b460a0fa8a9c9638174a9433a">size_type</a> <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a8c04d217b83800f818c794da17dc8e4b">size</a>, bool headless_pool, Emit_blob_func &amp;&amp;emit_blob_func, <a class="el" href="classflow_1_1log_1_1Logger.html">log::Logger</a> *logger_ptr, Share_after_split_left_func &amp;&amp;share_after_split_left_func)</td></tr>
<tr class="memdesc:a92215c61d9e3ca83bdbfa6b078b72dc9 inherit pro_methods_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Impl of <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a2e4aa425939071a4fb313d3237987226" title="Identical to successively performing share_after_split_left(size) until this-&gt;empty() == true; the re...">share_after_split_equally()</a> but capable of emitting not just <code>*this</code> type (<code>Basic_blob&lt;...&gt;</code>) but any sub-class (such as <code>Blob</code>/<code>Sharing_blob</code>) provided a functor like <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a6c0635640d16084eb975a9fb97f96aab" title="Applicable to !zero() blobs, this shifts this-&gt;begin() by size to the right without changing end(); a...">share_after_split_left()</a> but returning an object of that appropriate type.  <a href="classflow_1_1util_1_1Basic__blob.html#a92215c61d9e3ca83bdbfa6b078b72dc9">More...</a><br /></td></tr>
<tr class="separator:a92215c61d9e3ca83bdbfa6b078b72dc9 inherit pro_methods_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_static_attribs_classflow_1_1util_1_1Basic__blob"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_classflow_1_1util_1_1Basic__blob')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="classflow_1_1util_1_1Basic__blob.html">flow::util::Basic_blob&lt; std::allocator&lt; uint8_t &gt;, S_SHARING_ALLOWED &gt;</a></td></tr>
<tr class="memitem:ad65bfdec2d39f4ccce6c311226b78c5b inherit pro_static_attribs_classflow_1_1util_1_1Basic__blob"><td class="memItemLeft" align="right" valign="top"><a id="ad65bfdec2d39f4ccce6c311226b78c5b" name="ad65bfdec2d39f4ccce6c311226b78c5b"></a>
static constexpr <a class="el" href="namespaceflow.html#a3938730ab4b89daf13d027a5f620e7ce">Flow_log_component</a>&#160;</td><td class="memItemRight" valign="bottom"><b>S_LOG_COMPONENT</b></td></tr>
<tr class="memdesc:ad65bfdec2d39f4ccce6c311226b78c5b inherit pro_static_attribs_classflow_1_1util_1_1Basic__blob"><td class="mdescLeft">&#160;</td><td class="mdescRight">Our <a class="el" href="classflow_1_1log_1_1Component.html" title="A light-weight class, each object storing a component payload encoding an enum value from enum type o...">flow::log::Component</a>. <br /></td></tr>
<tr class="separator:ad65bfdec2d39f4ccce6c311226b78c5b inherit pro_static_attribs_classflow_1_1util_1_1Basic__blob"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><div class="compoundTemplParams">template&lt;bool S_SHARING_ALLOWED&gt;<br />
class flow::util::Blob_with_log_context&lt; S_SHARING_ALLOWED &gt;</div><p ><a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> that works in regular heap (and is itself placed in heap or stack) and memorizes a <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">log::Logger</a>, enabling easier logging albeit with a small perf trade-off. </p>
<p >Most users will use the concrete types <a class="el" href="namespaceflow_1_1util.html#af09888b3a8feaff209b6625e493bc338" title="A concrete Blob_with_log_context that compile-time-disables Basic_blob::share() and the sharing API d...">Blob</a>/<a class="el" href="namespaceflow_1_1util.html#a164f043f9edc5e5ec8fc99a0e4eb9064" title="A concrete Blob_with_log_context that compile-time-enables Basic_blob::share() and the sharing API de...">Sharing_blob</a> which alias to <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html" title="Basic_blob that works in regular heap (and is itself placed in heap or stack) and memorizes a log::Lo...">Blob_with_log_context</a>.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a>. It supplies the core behavior of <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html" title="Basic_blob that works in regular heap (and is itself placed in heap or stack) and memorizes a log::Lo...">Blob_with_log_context</a>. Note that while some APIs are shadowed in this (non-polymorphic) sub-class and thus documented inside the <code>class { braces }</code>, a significant number are simply inherited: namely the ones that do not <a class="el" href="namespaceflow_1_1log.html" title="Flow module providing logging functionality.">log</a>. Typically one would look at <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> documentation and simply mentally remove any <code>Logger* logger_ptr</code> argument from the prototype, knowing the logging will occur with the <a class="el" href="namespaceflow_1_1log.html" title="Flow module providing logging functionality.">log</a> context established at <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html" title="Basic_blob that works in regular heap (and is itself placed in heap or stack) and memorizes a log::Lo...">Blob_with_log_context</a> construction.</dd></dl>
<p>In a vague sense <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html" title="Basic_blob that works in regular heap (and is itself placed in heap or stack) and memorizes a log::Lo...">Blob_with_log_context</a> is to <code><a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a>&lt;&gt;</code> what <code>string</code> is to <code>basic_string</code>, in that it is a commonly used concrete type rather than a template. However, unlike that analogy, it also adds behavior and data. <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> accomplishes (optional) logging by means of the user supplying (if desired) a non-null <code>Logger*</code> to each API they want to log. <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html" title="Basic_blob that works in regular heap (and is itself placed in heap or stack) and memorizes a log::Lo...">Blob_with_log_context</a>, instead, takes a <code>Logger*</code> in any non-move/copy ctor and uses it for all subsequent logging. <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> uses a little less memory and is a little bit faster, while <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html" title="Basic_blob that works in regular heap (and is itself placed in heap or stack) and memorizes a log::Lo...">Blob_with_log_context</a> (<a class="el" href="namespaceflow_1_1util.html#af09888b3a8feaff209b6625e493bc338" title="A concrete Blob_with_log_context that compile-time-disables Basic_blob::share() and the sharing API d...">Blob</a>, <a class="el" href="namespaceflow_1_1util.html#a164f043f9edc5e5ec8fc99a0e4eb9064" title="A concrete Blob_with_log_context that compile-time-enables Basic_blob::share() and the sharing API de...">Sharing_blob</a>) is more convenient.</p>
<p >It is possible, though somewhat exotic, to use any shadowed APIs (that take the <code>Logger* logger_ptr</code> optional arg) from <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> (via cast of <code>this</code> to <code>Basic_blob*</code> perhaps).</p>
<p >Lastly, reminder: <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a>, and hence <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html" title="Basic_blob that works in regular heap (and is itself placed in heap or stack) and memorizes a log::Lo...">Blob_with_log_context</a>, log at TRACE log level or more verbose. If in any case there is no interest in logging at such a verbose level (checked against <a class="el" href="classflow_1_1log_1_1Logger.html#ac8a2e7a33fe3fbc0c29ead62ed98c022" title="Given attributes of a hypothetical message that would be logged, return true if that message should b...">log::Logger::should_log()</a> of course) then using <a class="el" href="namespaceflow_1_1util.html#a2c085aa47872fe7e4dbba0703e23923c" title="Short-hand for a Basic_blob that allocates/deallocates in regular heap and is itself assumed to be st...">Blob_sans_log_context</a> or <a class="el" href="namespaceflow_1_1util.html#a0edd9dd6bf51e7457477123b419f5bf6" title="Identical to Blob_sans_log_context but with sharing feature compile-time-enabled.">Sharing_blob_sans_log_context</a> is straightforwardly superior.</p>
<h3>Historic note</h3>
<p >Originally <code>Blob</code> was the only class in the hierarchy and (1) could not be used with custom allocators (and was not SHM-friendly) unlike <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a>; and (2) stored a log context from construction unlike <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a>. Then when those 2 changes became required by some use cases, <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> took the vast majority of what used to be <code>Blob</code> and added those 2 changes. Meanwhile <code>Blob</code> was rewritten in terms of <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> in a way that exactly preserved its behavior (so that no call-site changes for Blob-using code were needed). Lastly, when <code>S_SHARING_ALLOWED</code> template param was added to <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a>, <code>Blob</code> became a template <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html" title="Basic_blob that works in regular heap (and is itself placed in heap or stack) and memorizes a log::Lo...">Blob_with_log_context</a>, while <a class="el" href="namespaceflow_1_1util.html#af09888b3a8feaff209b6625e493bc338" title="A concrete Blob_with_log_context that compile-time-disables Basic_blob::share() and the sharing API d...">Blob</a> aliased to <code><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html" title="Basic_blob that works in regular heap (and is itself placed in heap or stack) and memorizes a log::Lo...">Blob_with_log_context</a>&lt;false&gt;</code> thus staying functionally exactly the same as before, minus the <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#a0170224a6ec8d4acba551fa175998db6" title="On top of the similar Basic_blob method, logs using the stored log context and copies it to the retur...">share()</a> feature. (<code>Sharing_blob</code> was added, aliasing to <code><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html" title="Basic_blob that works in regular heap (and is itself placed in heap or stack) and memorizes a log::Lo...">Blob_with_log_context</a>&lt;true&gt;</code>, being exactly idetical to <code>Blob</code> before; the rename was possible due to no production code using the sharing feature yet.)</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">S_SHARING_ALLOWED</td><td>See <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a>. </td></tr>
  </table>
  </dd>
</dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a7b99f86b28168dbabe7892d5e2aeddcf" name="a7b99f86b28168dbabe7892d5e2aeddcf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b99f86b28168dbabe7892d5e2aeddcf">&#9670;&nbsp;</a></span>Blob_with_log_context() <span class="overload">[1/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool S_SHARING_ALLOWED&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">flow::util::Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt;::Blob_with_log_context </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classflow_1_1log_1_1Logger.html">log::Logger</a> *&#160;</td>
          <td class="paramname"><em>logger_ptr</em> = <code>0</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>On top of the similar 2-arg <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> ctor, memorizes the given <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">log::Logger</a> for all future logging in <code>*this</code>. </p>
<p >(Except, technically, one can subsequently override this by using super-class APIs which take <code>Logger*</code>.)</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">logger_ptr</td><td>The Logger implementation to use subsequently. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="aa1c14620aea7b1a40f5764cab0321be0" name="aa1c14620aea7b1a40f5764cab0321be0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa1c14620aea7b1a40f5764cab0321be0">&#9670;&nbsp;</a></span>Blob_with_log_context() <span class="overload">[2/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool S_SHARING_ALLOWED&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">flow::util::Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt;::Blob_with_log_context </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classflow_1_1log_1_1Logger.html">log::Logger</a> *&#160;</td>
          <td class="paramname"><em>logger_ptr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#af2a2e2410ed4ddc8ec8d2c22cbea1f40">size_type</a>&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>On top of the similar 3-arg <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> ctor, memorizes the given <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">log::Logger</a> for all future logging in <code>*this</code>. </p>
<p >(Except, technically, one can subsequently override this by using super-class APIs which take <code>Logger*</code>.)</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">logger_ptr</td><td>The Logger implementation to use subsequently. </td></tr>
    <tr><td class="paramname">size</td><td>See super-class API. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="af71ca7850b5cf88a0435fbe14b676284" name="af71ca7850b5cf88a0435fbe14b676284"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af71ca7850b5cf88a0435fbe14b676284">&#9670;&nbsp;</a></span>Blob_with_log_context() <span class="overload">[3/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool S_SHARING_ALLOWED&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">flow::util::Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt;::Blob_with_log_context </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt; &amp;&amp;&#160;</td>
          <td class="paramname"><em>moved_src</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> move ctor, moves the source object's <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">log::Logger</a> for all future logging in <code>*this</code>. </p>
<p >(Except, technically, one can subsequently override this by using super-class APIs which take <code>Logger*</code>.)</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">moved_src</td><td>See super-class API. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="aa144c1f019013ece64df50e9fb7d02a2" name="aa144c1f019013ece64df50e9fb7d02a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa144c1f019013ece64df50e9fb7d02a2">&#9670;&nbsp;</a></span>Blob_with_log_context() <span class="overload">[4/4]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool S_SHARING_ALLOWED&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">flow::util::Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt;::Blob_with_log_context </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt; &amp;&#160;</td>
          <td class="paramname"><em>src</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> copy ctor, copies the source object's <a class="el" href="classflow_1_1log_1_1Logger.html" title="Interface that the user should implement, passing the implementing Logger into logging classes (Flow&#39;...">log::Logger</a> for all future logging in <code>*this</code>. </p>
<p >(Except, technically, one can subsequently override this by using super-class APIs which take <code>Logger*</code>.)</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src</td><td>See super-class API. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a4d66b404a14a996f52556be8d1064782" name="a4d66b404a14a996f52556be8d1064782"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4d66b404a14a996f52556be8d1064782">&#9670;&nbsp;</a></span>assign_copy()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool S_SHARING_ALLOWED&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt;<a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#af2a2e2410ed4ddc8ec8d2c22cbea1f40">::size_type</a> <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">flow::util::Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt;::assign_copy </td>
          <td>(</td>
          <td class="paramtype">const boost::asio::const_buffer &amp;&#160;</td>
          <td class="paramname"><em>src</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> method, logs using the stored log context. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src</td><td>See super-class API. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>See super-class API. </dd></dl>

</div>
</div>
<a id="ac0562b29e570b0aa8eaa091ebdbc227b" name="ac0562b29e570b0aa8eaa091ebdbc227b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac0562b29e570b0aa8eaa091ebdbc227b">&#9670;&nbsp;</a></span>emplace_copy()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool S_SHARING_ALLOWED&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt;<a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#ac30be1ccc8500cce80210adc2273d6c2">::Iterator</a> <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">flow::util::Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt;::emplace_copy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#af1649a4983f8c6b5d435779c45ce947c">Const_iterator</a>&#160;</td>
          <td class="paramname"><em>dest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const boost::asio::const_buffer &amp;&#160;</td>
          <td class="paramname"><em>src</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> method, logs using the stored log context. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dest</td><td>See super-class API. </td></tr>
    <tr><td class="paramname">src</td><td>See super-class API. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>See super-class API. </dd></dl>

</div>
</div>
<a id="a73f4a5d64cf770a043d9591cd1f8e26f" name="a73f4a5d64cf770a043d9591cd1f8e26f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a73f4a5d64cf770a043d9591cd1f8e26f">&#9670;&nbsp;</a></span>operator=() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool S_SHARING_ALLOWED&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt; &amp; <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">flow::util::Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt;::operator= </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt; &amp;&amp;&#160;</td>
          <td class="paramname"><em>moved_src</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> method, logs using the stored log context. </p>
<dl class="section note"><dt>Note</dt><dd>We do not shadow <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a77785988abe56d62dacf42ec6a733713" title="Move assignment.">Basic_blob::assign()</a> (move overload), as it would've been identical to the present operator. In <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html" title="Basic_blob that works in regular heap (and is itself placed in heap or stack) and memorizes a log::Lo...">Blob_with_log_context</a>, unlike <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a>, there is no need for an extra <code>logger_ptr</code> optional arg.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">moved_src</td><td>See super-class API. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>See super-class API. </dd></dl>

</div>
</div>
<a id="a6961a2450106669479bcc8dd2061bc2c" name="a6961a2450106669479bcc8dd2061bc2c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6961a2450106669479bcc8dd2061bc2c">&#9670;&nbsp;</a></span>operator=() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool S_SHARING_ALLOWED&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt; &amp; <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">flow::util::Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt;::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt; &amp;&#160;</td>
          <td class="paramname"><em>src</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> method, logs using the stored log context. </p>
<dl class="section note"><dt>Note</dt><dd>We do not shadow <a class="el" href="classflow_1_1util_1_1Basic__blob.html#a77785988abe56d62dacf42ec6a733713" title="Move assignment.">Basic_blob::assign()</a> (copy overload), as it would've been identical to the present operator. In <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html" title="Basic_blob that works in regular heap (and is itself placed in heap or stack) and memorizes a log::Lo...">Blob_with_log_context</a>, unlike <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a>, there is no need for an extra <code>logger_ptr</code> optional arg.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src</td><td>See super-class API. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>See super-class API. </dd></dl>

</div>
</div>
<a id="a47f53934a1116714f333db682cdc71a2" name="a47f53934a1116714f333db682cdc71a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a47f53934a1116714f333db682cdc71a2">&#9670;&nbsp;</a></span>reserve()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool S_SHARING_ALLOWED&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">flow::util::Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt;::reserve </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#af2a2e2410ed4ddc8ec8d2c22cbea1f40">size_type</a>&#160;</td>
          <td class="paramname"><em>capacity</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> method, logs using the stored log context. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">capacity</td><td>See super-class API. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ada64ba0c877e8f7494f0a4c850b20fcc" name="ada64ba0c877e8f7494f0a4c850b20fcc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ada64ba0c877e8f7494f0a4c850b20fcc">&#9670;&nbsp;</a></span>resize()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool S_SHARING_ALLOWED&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">flow::util::Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt;::resize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#af2a2e2410ed4ddc8ec8d2c22cbea1f40">size_type</a>&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#af2a2e2410ed4ddc8ec8d2c22cbea1f40">size_type</a>&#160;</td>
          <td class="paramname"><em>start_or_unchanged</em> = <code><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#ad062746f09e8275557fa38d939fc5698">S_UNCHANGED</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> method, logs using the stored log context. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>See super-class API. </td></tr>
    <tr><td class="paramname">start_or_unchanged</td><td>See super-class API. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a0170224a6ec8d4acba551fa175998db6" name="a0170224a6ec8d4acba551fa175998db6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0170224a6ec8d4acba551fa175998db6">&#9670;&nbsp;</a></span>share()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool S_SHARING_ALLOWED&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt; <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">flow::util::Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt;::share</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> method, logs using the stored log context and copies it to the returned object as well. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">other</td><td>See super-class API. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>See super-class API. </dd></dl>

</div>
</div>
<a id="a52a64f31c289082f7125d611fc01f745" name="a52a64f31c289082f7125d611fc01f745"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a52a64f31c289082f7125d611fc01f745">&#9670;&nbsp;</a></span>share_after_split_equally()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool S_SHARING_ALLOWED&gt; </div>
<div class="memtemplate">
template&lt;typename Emit_blob_func &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">flow::util::Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt;::share_after_split_equally </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#af2a2e2410ed4ddc8ec8d2c22cbea1f40">size_type</a>&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>headless_pool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Emit_blob_func &amp;&amp;&#160;</td>
          <td class="paramname"><em>emit_blob_func</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> method, logs using the stored log context and copies it to the emitted objects as well. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">Emit_blob_func</td><td>See super-class API. However in this version the arg type in the signature is <code><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html" title="Basic_blob that works in regular heap (and is itself placed in heap or stack) and memorizes a log::Lo...">Blob_with_log_context</a>&amp;&amp;</code>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>See super-class API. </td></tr>
    <tr><td class="paramname">headless_pool</td><td>See super-class API. </td></tr>
    <tr><td class="paramname">emit_blob_func</td><td>See <code>Emit_blob_func</code>. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ae921a2c309f067ba3c0a28040bd9268b" name="ae921a2c309f067ba3c0a28040bd9268b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae921a2c309f067ba3c0a28040bd9268b">&#9670;&nbsp;</a></span>share_after_split_equally_emit_ptr_seq()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool S_SHARING_ALLOWED&gt; </div>
<div class="memtemplate">
template&lt;typename Blob_ptr_container &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">flow::util::Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt;::share_after_split_equally_emit_ptr_seq </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#af2a2e2410ed4ddc8ec8d2c22cbea1f40">size_type</a>&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>headless_pool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Blob_ptr_container *&#160;</td>
          <td class="paramname"><em>out_blobs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> method, logs using the stored log context and copes it to the emitted objects as well. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">Blob_ptr_container</td><td>See super-class API. However in this version the container element pointer's type must be <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html" title="Basic_blob that works in regular heap (and is itself placed in heap or stack) and memorizes a log::Lo...">Blob_with_log_context</a>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>See super-class API. </td></tr>
    <tr><td class="paramname">headless_pool</td><td>See super-class API. </td></tr>
    <tr><td class="paramname">out_blobs</td><td>See super-class API. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a9b42f5cbe424291ebd93cfcd4d41e78b" name="a9b42f5cbe424291ebd93cfcd4d41e78b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9b42f5cbe424291ebd93cfcd4d41e78b">&#9670;&nbsp;</a></span>share_after_split_equally_emit_seq()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool S_SHARING_ALLOWED&gt; </div>
<div class="memtemplate">
template&lt;typename Blob_container &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">flow::util::Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt;::share_after_split_equally_emit_seq </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#af2a2e2410ed4ddc8ec8d2c22cbea1f40">size_type</a>&#160;</td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>headless_pool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Blob_container *&#160;</td>
          <td class="paramname"><em>out_blobs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> method, logs using the stored log context and copies it to the emitted objects as well. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">Blob_container</td><td>See super-class API. However in this version the container element type must be <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html" title="Basic_blob that works in regular heap (and is itself placed in heap or stack) and memorizes a log::Lo...">Blob_with_log_context</a>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>See super-class API. </td></tr>
    <tr><td class="paramname">headless_pool</td><td>See super-class API. </td></tr>
    <tr><td class="paramname">out_blobs</td><td>See super-class API. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="acb4fb1cfd3722642c8354d968e0a7925" name="acb4fb1cfd3722642c8354d968e0a7925"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acb4fb1cfd3722642c8354d968e0a7925">&#9670;&nbsp;</a></span>share_after_split_left()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool S_SHARING_ALLOWED&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt; <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">flow::util::Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt;::share_after_split_left </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#af2a2e2410ed4ddc8ec8d2c22cbea1f40">size_type</a>&#160;</td>
          <td class="paramname"><em>size</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> method, logs using the stored log context and copies it to the returned object as well. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>See super-class API. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>See super-class API. </dd></dl>

</div>
</div>
<a id="afbef028be2eb419d363210e5d56f41c8" name="afbef028be2eb419d363210e5d56f41c8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afbef028be2eb419d363210e5d56f41c8">&#9670;&nbsp;</a></span>share_after_split_right()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool S_SHARING_ALLOWED&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt; <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">flow::util::Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt;::share_after_split_right </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#af2a2e2410ed4ddc8ec8d2c22cbea1f40">size_type</a>&#160;</td>
          <td class="paramname"><em>size</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> method, logs using the stored log context and copies it to the returned object as well. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">size</td><td>See super-class API. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>See super-class API. </dd></dl>

</div>
</div>
<a id="af3ac73f6d0ad3398c08d6be1ea8890fd" name="af3ac73f6d0ad3398c08d6be1ea8890fd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af3ac73f6d0ad3398c08d6be1ea8890fd">&#9670;&nbsp;</a></span>sub_copy()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool S_SHARING_ALLOWED&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt;<a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#af1649a4983f8c6b5d435779c45ce947c">::Const_iterator</a> <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">flow::util::Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt;::sub_copy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html#af1649a4983f8c6b5d435779c45ce947c">Const_iterator</a>&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const boost::asio::mutable_buffer &amp;&#160;</td>
          <td class="paramname"><em>dest</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> method, logs using the stored log context. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src</td><td>See super-class API. </td></tr>
    <tr><td class="paramname">dest</td><td>See super-class API. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>See super-class API. </dd></dl>

</div>
</div>
<a id="a711ce35988b4aad671faaf10fbd6eb0d" name="a711ce35988b4aad671faaf10fbd6eb0d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a711ce35988b4aad671faaf10fbd6eb0d">&#9670;&nbsp;</a></span>swap()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool S_SHARING_ALLOWED&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">flow::util::Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt;::swap </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt; &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> method, logs using the stored log context. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">other</td><td>See super-class API. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a id="ae3835e26994f760a6324280d3a646b91" name="ae3835e26994f760a6324280d3a646b91"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae3835e26994f760a6324280d3a646b91">&#9670;&nbsp;</a></span>swap()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;bool S_SHARING_ALLOWED&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void swap </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt; &amp;&#160;</td>
          <td class="paramname"><em>blob1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classflow_1_1util_1_1Blob__with__log__context.html">Blob_with_log_context</a>&lt; S_SHARING_ALLOWED &gt; &amp;&#160;</td>
          <td class="paramname"><em>blob2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">related</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>On top of the similar <a class="el" href="classflow_1_1util_1_1Basic__blob.html" title="A hand-optimized and API-tweaked replacement for vector&lt;uint8_t&gt;, i.e., buffer of bytes inside an all...">Basic_blob</a> related function, logs using the stored log context of <code>blob1</code>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">blob1</td><td>See super-class related API. </td></tr>
    <tr><td class="paramname">blob2</td><td>See super-class related API. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>util/<a class="el" href="blob_8hpp.html">blob.hpp</a></li>
<li>util/<a class="el" href="blob__fwd_8hpp.html">blob_fwd.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Mar 28 2025 22:55:32 for Flow by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
